PHP exec () функция - пост расширенный - PullRequest
1 голос
/ 28 ноября 2011

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

На самом деле у меня есть требование в нормальных условиях, что у клиента есть файл .exe, который он обычно должен запускать из командной строки, где ему нужно вручную указать путь к файлу лицензии и конфигурации, чтобы приложение было доступно для монтаж.

Теперь ему нужен php-скрипт, с которого он войдет в веб-страницу со своими действительными данными для входа в систему и нажатием ссылки он сможет запустить файл .exe для установки программного обеспечения на своем компьютере. Включение файла лицензии и конфигурации - это моя работа, над которой я работал, с другой стороны, я до сих пор не уверен, что действительно возможно запустить файл .exe на клиентском компьютере, когда скрипт выполняется на удаленном сервере php. Какие могут быть другие альтернативы для достижения этой цели. Кто-нибудь может очистить мои сомнения?

Ответы [ 4 ]

3 голосов
/ 28 ноября 2011

Вы не можете запустить на клиентском компьютере что-либо из сценария PHP, запущенного на сервере . Это невозможно. Что вы можете сделать - это создать архив (например, ZIP), который содержит исполняемый файл, файл лицензии и конфигурацию. Затем вы можете предложить этот архив пользователю в качестве загрузки. После распаковки архива на своем компьютере он сможет выполнить приложение.

Другими возможностями выполнения чего-либо на клиентском компьютере могут быть апплет Java или приложение Flash. На них распространяется множество ограничений безопасности.

1 голос
/ 28 ноября 2011

Альтернатива:

  • 1. Сохранение настроек в файл

  • 2. Компактная программа для архивации с файлом настроек && license

  • 3.Скачать архив

0 голосов
/ 28 ноября 2011

Невозможно выполнить программу на клиентском компьютере напрямую из PHP.Лучшее, на что вы можете надеяться, это обеспечить загрузку исполняемого файла, а затем клиент сможет выполнить его вручную.Вы можете предоставить файл архива с исполняемым файлом установки и файлом (файлами) конфигурации / лицензии, но клиент все равно должен будет выполнить файл вручную.

Вы могли бы потенциально использовать технологии на стороне клиента, такие как Flash, Javaили ActiveX, чтобы выполнить это, но это не простая задача и требует достаточно глубокого знания языков, на которых основаны эти технологии.

Если бы файл был MSI, теоретически было бы возможно разрешить серверучтобы удаленно установить его на клиентский компьютер, однако для этого есть некоторые препятствия:

  • Для этого вам нужен полноценный домен Windows, и серверные, и клиентские компьютеры должны быть членами этогодомен.Обойти это невозможно.
  • Скорее всего, вам нужно знать имя NetBIOS клиентского компьютера, и AFAIK не дает 100% надежного способа определить это из PHP.
  • ВашЭкземпляр PHP должен быть запущен под учетной записью, которая имеет права администратора в домене.В настоящее время это вряд ли так, и в любом случае не очень хорошая идея так бегать.
0 голосов
/ 28 ноября 2011

PHP на сервере, сервер генерирует HTML / JS / CSS. Процесс PHP завершается до того, как веб-страница отображается пользователю.

Нет пути, и ОЧЕНЬ ОЧЕНЬ веская причина, почему это невозможно или никогда не удастся сделать.

А зачем вам запускать файл .exe на чьем-то компьютере, кроме как по злонамеренным причинам?

Вы в сети, продаете подписку, о каком лицензировании вы говорите?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...