Навигация

Авторизация

Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.

Больше

Запуск программы из браузера

Windows

Общеизвестно, что стандарты безопасности сильно ограничивают взаимодействие сервера с клиентской машиной через браузер. Когда возникает необходимость такого взаимодействия, приходится использовать либо недокументированные функции какого-то определенного браузера (фактически, "дыры" в безопасности, которые разработчики имеют обыкновение устранять), либо расширения и плагины, специально разработанные для этого.

Однако, мы не можем быть уверены в том, что посетитель использует именно нужную нам старую версию браузера с "дырой", и не можем заставить его установить какие-то плагины. Ясно, что в идеале хотелось бы обойтись без этого.

Когда у меня возникла необходимость запуска программы на клиентской машине с определенными параметрами, переданными в командной строке, а именно игру Ил-2 в режиме соедиения с сервером на сайте Запасной Аэродром, я поступил следующим образом:

Я создал панель, которая передавала необходимые параметры на отдельную, специально для этого созданную страницу методом POST, открывая при этом ее в новом окне. Код формы внутри панели был примерно таков (я выбросил лишнюю логику не относящуюся к делу, могу потом подробнее рассказать, если кому-то интересно):

echo "<form action='".INFUSIONS."il2servers_panel/il2connect.php' target='_blanc' method='post'>\n";
echo "<input type='hidden' name='server_ip' value='".$servers['server_ip']."'>\n";
echo "<input type='hidden' name='server_port' value='21000'>\n";
echo "<input type='hidden' name='pilot_name' value='".$userdata['user_name']."'>\n";
echo "<input type='hidden' name='game_path' value='".$gamePath."'>\n";
echo "<input class='button' type='submit' name='connect' value='".$locale['il2_605']."'".IL_STYLE."'>\n";
echo "</form>\n";

Путь к программе, в данном случае к игре, я прошу пользователя ввести в его профиль заранее. Это просто полный путь к исполняемому файлу, включая имя диска и все прочее. В коде он фигурирует под именем

$gamePath.

Форма отсылает данные на страничку с таким кодом:


<?php
if ( isset ($_POST['connect']))
{
header('Content-type: application/cmd');
header('Content-Disposition: attachment; filename="il2connect.cmd"');
echo "\"".stripslashes($_POST['game_path'])."\" ".$_POST['server_ip'].":".$_POST['server_port']." -name ".$_POST['pilot_name'];
}
?>

В результате сервер отсылает браузеру командный файл! Который пользователь может сохранить или запустить! И если он выбирает "запустить", то, вуаля - процесс пошел. Запускается указанная им ранее в профиле программа, с параметрами переданными с сервера.

Конечно, на стороне сервера не видно, что именно указал в путях пользователь и не пользуется ли он этой формой, чтобы запускать например "блокнот" вместо Ил-2, но нам это и не важно, для собственного удобства пользователь укажет правильный путь. Ну, а если нет, то нам не жалко: не хочешь не играй, или соединяйся "вручную".

Пользователям Linux (к числу которых принадлежу я сам) можно отправлять командный файл .sh, чтобы предоставить им тот же сервис.

Комментарии

#1 | Somedo 21 ноября 2009
За, что люблю ваш блог: за то, что информация подаётся в таком досупном виде. виды правоотношений
#2 | Kaornes 22 ноября 2009
В этой публикации вы затронули такую тему, которая уже давно трепетала у меня в душе. микроэкономике
#3 | YuriyZA 28 ноября 2009
Прошу прощения, что вмешался... Я разбираюсь в этом вопросе. Можно обсудить. Пишите здесь или в PM. роль денег
#4 | Saffier 28 ноября 2009
Все это уже расписано и переписано по 10 раз. шпаргалки по субд
#5 | gonus 29 ноября 2009
Неплохой материал. Жду новых публикаций. Интересно , где админ пропал?
#6 | selba 29 ноября 2009
Интересный блог или сайт! Буду следить за ним..
#7 | loreks 04 декабря 2009
#8 | Cmsboard 17 декабря 2009
Тема действительно интересная, но у меня не работает. Может есть какой софт для запуска программ из браузера?
CMS - системы управления сайтом
#9 | anapekka 21 декабря 2009
Пока не пригодится. Подождем..
#10 | MoiseyShmit 03 января 2010

Добавить комментарий

Пожалуйста, залогиньтесь для добавления комментария.

Рейтинги

Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
шкафы купе на заказ
Время загрузки: 2,30 секунд
876,916 уникальных посетителей