Как передать данные GET и POST в исполняемый файл php? - PullRequest
5 голосов
/ 03 июня 2009

Я пишу веб-сервер на C # и пытаюсь добавить поддержку PHP. У меня это в основном работает, за исключением того, что я не знаю, как вставить данные GET и POST в исполняемый файл PHP, когда я передаю ему файл. Я тестировал с GET, так как я не дошел до обработки запросов POST на сервере, и у меня есть строка аргументов, которые передаются отдельно, но я не знаю, как передать информацию в парсер php , Некоторые советы будут оценены.

Ответы [ 5 ]

5 голосов
/ 17 сентября 2009

Для GET: Легкий путь (который я нашел):

php-cgi.exe <script-file-name> <parameter1>=<value1> <parameter2>=<value2> [...] <parameterN>=<valueN>

Трудный путь (через php-cgi и windows cli) будет:

SET "QUERY_STRING=<parameter1>=<value1>&<parameter2>=<value2>&[...]&<paramterN>=<valueN>"
SET SCRIPT_NAME=<script-file-name>
SET REQUEST_METHOD=GET
SET REDIRECT_STATUS=0
php-cgi.exe

Я бы предположил, что есть способ установить переменную окружения через C # /. Net. Переменные среды должны быть сброшены после завершения php-cgi.exe.

Дополнительная информация о переменных среды CGI, которую вы можете установить (и CGI в целом) в http://www.ietf.org/rfc/rfc3875.txt. Может также пригодиться в документации по переменным $ _SERVER PHP. Вопросы безопасности для запуска PHP как CGI также в документации PHP на php.net.

1 голос
/ 03 июня 2009

Если вы находитесь в bash или аналогичной оболочке, попробуйте это: QUERY_STRING="fruitKind=apple&basketId=1000" php -q foo.php.

1 голос
/ 03 июня 2009

Вы знакомы с CGI ? Обычно веб-серверы выполняют произвольные внешние программы.

Конечно, есть более современные альтернативы CGI, но (почти) каждый веб-сервер и внешняя программа сегодня будут поддерживать CGI.

0 голосов
/ 17 сентября 2009

Здесь есть объяснение http://stevedev.co.cc/php-curl-method-get-and-post/

0 голосов
/ 03 июня 2009

Рассматривали ли вы передачу данных GET / POST как STDIN в исполняемый файл PHP? т.е.

system ("echo" .GETOrPOSTData. "> Foobar.php");

...