[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 メーリングリストの案内