2011-07-15 10 views
0

私はPython CGIHTTPServerクラスを使用して実行している非常に単純なCGI Webサーバーを持っています。 このクラスは、cgi-phpスクリプトを生成して実行します。 WebページからPOST要求が送信された場合、PHPスクリプトのPOST要求データにどのようにアクセスできますか?CGIHTTPServer(python)からのPOST要求データへのアクセス

答えて

1

あなたのPythonプロセスがcgi-phpスクリプトを作成し実行すると言うと、「PHP CLI実行ファイルを実行してスクリプトの名前を渡してPHPスクリプトを呼び出す」ということを信じています。

PHP CLI実行可能ファイルを使用すると、HTTP固有のスーパーグローバルおよび環境値は自動的に設定されません。あなたは、すべてのHTTPリクエストヘッダとGET/POSTデータをPythonサーバプロセスで読み込み、PHPスクリプトが使用する環境にそれらを設定する必要があります。

実験全体が面白いと聞こえますが、これはすでにmod_phpが行っていることです。

+0

はい、あなたは正しかったと私は私の質問で明確にしていない。私は、cgiスクリプトのグローバル変数にPOSTデータを設定する必要があることを知っています。しかし、私の問題は、どのルーチンがpython CGIHTTPServerでそのデータを受け取るのかわかりません。追加のデータをリッスンするrun_cgi()ルーチンがあります。ただし、そのデータは破棄されます。だから私は混乱している。 – Methos

+1

'BaseHTTPServer'クラスを見てください...' CGIHTTPServer'の先祖クラスです。参照先:http://docs.python.org/library/basehttpserver.html#BaseHTTPServer.BaseHTTPRequestHandler –