V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
444683462
V2EX  ›  问与答

php 发送 post 的问题

  •  
  •   444683462 · Apr 23, 2015 · 2409 views
    This topic created in 4035 days ago, the information mentioned may be changed or developed.

    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 replies    2015-04-23 17:59:19 +08:00
    superliang
        1
    superliang  
       Apr 23, 2015
    用F12 看看到底post给了谁
    444683462
        2
    444683462  
    OP
       Apr 23, 2015
    @myleon Failed to load resource: net::ERR_CACHE_MISS
    post.php
    怎么搞
    neutrino
        3
    neutrino  
       Apr 23, 2015
    因为确实在do_post_request里读了啊。。。改成'wb',fputs()看看。。
    ashong
        4
    ashong  
       Apr 23, 2015
    echo do_post_request('http://localhost/getPost.php', $postdata);
    你在post.php里面echo,当然是post.php里面显示了
    444683462
        5
    444683462  
    OP
       Apr 23, 2015
    @ashong 谢谢.这确实是.但是在getpost.php里面为什么无值
    444683462
        6
    444683462  
    OP
       Apr 23, 2015
    @neutrino 谢谢.试了 还是不行
    cylin
        7
    cylin  
       Apr 23, 2015
    你自己通过浏览器访问getPost.php是GET请求,$_POST变量肯定是空的,需要通过浏览器提交POST请求才有结果
    lincanbin
        8
    lincanbin  
       Apr 23, 2015
    PHP的生命周期是一个请求,因此在一个请求结束后getPost.php里的$_POST就已经被销毁了,自然没有值。
    你如果想要持久化$_POST,可以用MemCached之类的服务。
    444683462
        9
    444683462  
    OP
       Apr 23, 2015
    @cylin 谢谢你的回答。需要通过浏览器提交POST请求才有结果 具体什么操作 没理解
    444683462
        10
    444683462  
    OP
       Apr 23, 2015
    @lincanbin 谢谢你的回答虽然不理解
    sun019
        11
    sun019  
       Apr 23, 2015
    请用 curl
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1068 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 23:13 · PVG 07:13 · LAX 16:13 · JFK 19:13
    ♥ Do have faith in what you're doing.