[PHP-users 27112] fsockopenでPOSTデータが送信されない?
R.Okumura
ryooku @ yahoo.co.jp
2005年 10月 5日 (水) 17:17:26 JST
はじめまして。奥村と申します。
現在PHPでシステムを開発しているのですが、
フロントエンドとなるサーバーAから
バックエンド処理をするサーバーBに
データを投げようと思って、
fsockopenを使ってPOSTでデータを送信しようと試みました。
ですが、POSTされるべきデータがサーバーB上のPHPでは受け取れて
いないという状態が続きます。
PHPのマニュアルにある通りにやってもデータを受信している形跡はありません。
SSL経由の場合も、普通のHTTPの場合も結果は同じでした。
レスポンスコードは200を受け取っています。
コードは以下の通りです(マニュアルどおりです)
$sock = fsockopen("ssl://secure.example.com", 443, $errno, $errstr, 30);
if (!$sock) die("$errstr ($errno)\n");
$data = "foo=" . urlencode("Fooの値") . "&bar=" . urlencode("Barの値");
fputs($sock, "POST /form_action.php HTTP/1.0\r\n");
fputs($sock, "Host: secure.example.com\r\n");
fputs($sock, "Content-type: application/x-www-url-encoded\r\n");
fputs($sock, "Content-length: " . strlen($data) . "\r\n");
fputs($sock, "Accept: */*\r\n");
fputs($sock, "\r\n");
fputs($sock, "$data\r\n");
fputs($sock, "\r\n");
$headers = "";
while ($str = trim(fgets($sock, 4096)))
$headers .= "$str\n";
print "\n";
$body = "";
while (!feof($sock))
$body .= fgets($sock, 4096);
fclose($sock);
ネット上を調べまくったのですが、
どういった原因でPOSTデータが受け取れないのか全く分からないので、
どなたかご教授願えませんでしょうか。
よろしくお願いします。
--
R.Okumura <ryooku @ ybb.ne.jp>
--------------------------------------
Know more about Breast Cancer
http://pr.mail.yahoo.co.jp/pinkribbon/
PHP-users メーリングリストの案内