我试图使用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确定日期: Tue,2010年3月2日22:40:46 GMT服务器: Apache/2.2.3 (CentOS) X驱动-By: PHP/5.2.6内容-长度: 31连接:关闭内容-类型: text/html;charset=UTF-8字符串(0)“Array”()
我有什么问题?为什么变量不发布它的数据?
发布于 2011-12-08 03:52:54
在reposter.php中试试这个
$raw_data = $GLOBALS['HTTP_RAW_POST_DATA'];
parse_str( $raw_data, $_POST );
print_r( $_POST );因为,数据不在$_POST[]变量中,而是在$GLOBALS['HTTP_RAW_POST_DATA']变量中。
https://stackoverflow.com/questions/2367458
复制相似问题