php 发送 post 的问题

2015-04-23 16:40:25 +08:00
 444683462

post.php向getPost.php发送post
getPost.php里面只有这句 var_dump($_POST);
为什么getPost.php里面是空 反而post.php里面得到了值。
谢谢了

function do_post_request($url, $data, $optional_headers = null)
{
$params = array('http' => array(
'method' => 'POST',
'content' => $data
));
if ($optional_headers !== null) {
$params['http']['header'] = $optional_headers;
}
$ctx = stream_context_create($params);
$fp = @fopen($url, 'rb', false, $ctx);
if (!$fp) {
throw new Exception("Problem with $url, $php_errormsg");
}
$response = @stream_get_contents($fp);
if ($response === false) {
throw new Exception("Problem reading data from $url, $php_errormsg");
}
return $response;
}

$postdata = array('name' => 'lichen');
$postdata = http_build_query($postdata);
echo do_post_request('http://localhost/getPost.php', $postdata);

2064 次点击
所在节点    问与答
11 条回复
myleon
2015-04-23 16:42:41 +08:00
用F12 看看到底post给了谁
444683462
2015-04-23 16:45:51 +08:00
@myleon Failed to load resource: net::ERR_CACHE_MISS
post.php
怎么搞
neutrino
2015-04-23 16:48:18 +08:00
因为确实在do_post_request里读了啊。。。改成'wb',fputs()看看。。
ashong
2015-04-23 16:48:25 +08:00
echo do_post_request('http://localhost/getPost.php', $postdata);
你在post.php里面echo,当然是post.php里面显示了
444683462
2015-04-23 16:57:10 +08:00
@ashong 谢谢.这确实是.但是在getpost.php里面为什么无值
444683462
2015-04-23 16:58:48 +08:00
@neutrino 谢谢.试了 还是不行
cylin
2015-04-23 17:03:37 +08:00
你自己通过浏览器访问getPost.php是GET请求,$_POST变量肯定是空的,需要通过浏览器提交POST请求才有结果
lincanbin
2015-04-23 17:06:19 +08:00
PHP的生命周期是一个请求,因此在一个请求结束后getPost.php里的$_POST就已经被销毁了,自然没有值。
你如果想要持久化$_POST,可以用MemCached之类的服务。
444683462
2015-04-23 17:07:52 +08:00
@cylin 谢谢你的回答。需要通过浏览器提交POST请求才有结果 具体什么操作 没理解
444683462
2015-04-23 17:08:34 +08:00
@lincanbin 谢谢你的回答虽然不理解
sun019
2015-04-23 17:59:19 +08:00
请用 curl

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/185747

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX