fsockopenを使用してデータを投稿しようとしていますが、結果が返されます。これが私の現在のコードです:
<?php
$data="stuff=hoorah\r\n";
$data=urlencode($data);
$fp = fsockopen("www.website.com", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "POST /script.php HTTP/1.0\r\n";
$out .= "Host: www.webste.com\r\n";
$out .= 'Content-Type: application/x-www-form-urlencoded\r\n';
$out .= 'Content-Length: ' . strlen($data) . '\r\n\r\n';
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
?>
ページをエコーすることになっていて、ページをエコーしていますが、script.phpのスクリプトは次のとおりです。
<?php
echo "<br><br>";
$raw_data = $GLOBALS['HTTP_RAW_POST_DATA'];
parse_str( $raw_data, $_POST );
//test 1
var_dump($raw_data);
echo "<br><br>":
//test 2
print_r( $_POST );
?>
結果は次のとおりです。
HTTP / 1.1 200 OK日付:2010年3月2日火曜日22:40:46 GMTサーバー:Apache / 2.2.3(CentOS)X-Powered-By:PHP / 5.2.6 Content-Length:31接続:closeContent-Type :text / html; charset = UTF-8 string(0) ""配列()
何が間違っていますか?変数がデータを投稿しないのはなぜですか?