2009-06-03 4 views
5

C#으로 웹 서버를 작성 중이며 PHP에 대한 지원을 추가하려고합니다. 파일을 전달할 때 GET 및 POST 데이터를 PHP 실행 파일로 가져 오는 방법을 모르겠다는 점을 제외하면 대부분 작동합니다. 나는 서버에서 처리 된 POST 요청을 얻지 못해서 GET으로 테스트 해왔다. 그리고 분리 된 인수의 문자열을 가지고 있지만 PHP 파서에 정보를 공급하는 방법을 모른다. . 몇몇 끝은 평가 될 것입니다.GET 및 POST 데이터를 PHP 실행 파일로 전달하는 방법은 무엇입니까?

답변

5

GET의 경우에 대한 설명이있다 : 은 (내가 찾은 그건) 쉬운 방법 :

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

세게 방법 (PHP-CGI와 창 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입니다. 아마도 PHP의 $ _SERVER 변수 문서가 될 수도 있습니다. php.net의 PHP 문서에서도 PHP를 CGI로 실행하기위한 보안 고려 사항.

1

CGI에 익숙하십니까? 이것은 일반적으로 웹 서버가 임의의 외부 프로그램을 실행하는 방법입니다.

확실히 현대적인 CGI 대안이 있지만 거의 모든 웹 서버와 외부 프로그램이 (현재) CGI를 지원합니다.

+0

링크가 깨졌습니다. – starbeamrainbowlabs

1

bash 또는 이와 유사한 셸의 경우 다음을 시도하십시오. QUERY_STRING="fruitKind=apple&basketId=1000" php -q foo.php.

+0

웹 서버가 C# == 사용할 수있는 배시 없음 : 전제 조건 (모노를 사용하지 않음) – jrharshath

-1

GET/POST 데이터를 STDIN으로 PHP 실행 파일로 파이핑하는 것이 좋습니까? 즉

시스템 ("echo".GETOrPOSTData. "foobar.php");

+0

이것이 작동하는지 알고 계십니까? 확실히? – jrharshath

+0

PHP 스크립트가 POST/GET에서 STDIN으로 변경하는 방법을 다시 작성해야합니다. – Jason