V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
444683462
V2EX  ›  问与答

php 发送 post 的问题

  •  
  •   444683462 · 2015-04-23 16:40:25 +08:00 · 2053 次点击
    这是一个创建于 3504 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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);

    11 条回复    2015-04-23 17:59:19 +08:00
    myleon
        1
    myleon  
       2015-04-23 16:42:41 +08:00
    用F12 看看到底post给了谁
    444683462
        2
    444683462  
    OP
       2015-04-23 16:45:51 +08:00
    @myleon Failed to load resource: net::ERR_CACHE_MISS
    post.php
    怎么搞
    neutrino
        3
    neutrino  
       2015-04-23 16:48:18 +08:00
    因为确实在do_post_request里读了啊。。。改成'wb',fputs()看看。。
    ashong
        4
    ashong  
       2015-04-23 16:48:25 +08:00
    echo do_post_request('http://localhost/getPost.php', $postdata);
    你在post.php里面echo,当然是post.php里面显示了
    444683462
        5
    444683462  
    OP
       2015-04-23 16:57:10 +08:00
    @ashong 谢谢.这确实是.但是在getpost.php里面为什么无值
    444683462
        6
    444683462  
    OP
       2015-04-23 16:58:48 +08:00
    @neutrino 谢谢.试了 还是不行
    cylin
        7
    cylin  
       2015-04-23 17:03:37 +08:00
    你自己通过浏览器访问getPost.php是GET请求,$_POST变量肯定是空的,需要通过浏览器提交POST请求才有结果
    lincanbin
        8
    lincanbin  
       2015-04-23 17:06:19 +08:00
    PHP的生命周期是一个请求,因此在一个请求结束后getPost.php里的$_POST就已经被销毁了,自然没有值。
    你如果想要持久化$_POST,可以用MemCached之类的服务。
    444683462
        9
    444683462  
    OP
       2015-04-23 17:07:52 +08:00
    @cylin 谢谢你的回答。需要通过浏览器提交POST请求才有结果 具体什么操作 没理解
    444683462
        10
    444683462  
    OP
       2015-04-23 17:08:34 +08:00
    @lincanbin 谢谢你的回答虽然不理解
    sun019
        11
    sun019  
       2015-04-23 17:59:19 +08:00
    请用 curl
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1172 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 23:06 · PVG 07:06 · LAX 15:06 · JFK 18:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.