2009-06-03 15 views
5

C#でWebサーバーを作成していますが、PHPのサポートを追加しようとしています。私は、ファイルを渡すときにGETとPOSTのデータをPHPの実行可能ファイルに渡す方法がわからないことを除いて、ほとんどは動作しています。私はGETでテストしてきました。サーバー上でPOSTリクエストを処理することに慣れていないため、渡された引数の文字列が分かれていますが、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をよく知っていますか?これは通常、Webサーバーが任意の外部プログラムをどのように実行するかです。

確かに現代的なCGIに代わるものがありますが、今日(ほとんど)すべてのWebサーバーと外部プログラムがCGIをサポートしています。

+0

リンクが壊れているようです。 – starbeamrainbowlabs

1

bashまたは類似のシェルの場合は、QUERY_STRING="fruitKind=apple&basketId=1000" php -q foo.phpを試してください。

+0

WebサーバーのC#==使用可能なbashはありません:前提条件(モノを使用していません) – jrharshath

-1

GET/POSTデータをSTDINとしてPHP実行可能ファイルにパイプすることを検討しましたか?すなわち、

システム( "echo" .GETOrPOSTData。 "> foobar.php");

+0

これが動作するかどうかは分かりますか?確かに? – jrharshath

+0

PHPスクリプトの入力をPOST/GETからSTDINに変更する方法を書き直す必要があります。 – Jason

関連する問題