同一个参数同时用get和post传值,用request接收的话,先接收post的还是先接收get传递的呢?网上查询说是“Post的信息作为http请求的内容,而Get是在Http头部传输的。 ”那是不是说用request接收的话,应该先获取到的是get传递过来的值呢?

解决方案 »

  1.   


    //何不测试一下呢
    <?php
    if($_SERVER['REQUEST_METHOD'] == 'GET')
    {
    ?>
    <form action="?id=G" method="POST">
    <input name="id" value="P">
    <input type="submit" value="submit">
    </form>
    <?php
    }
    else
    {
    print_r($_REQUEST);
    }
      

  2.   

    get和post数据均在http头部传递
    从头部的信息排列顺序看,先收到的是get数据
    request 遵从 php.ini 中的 variables_order 设置 ( EGPCS )
    做从右往左的同名覆盖所以 用request接收的话,获取到的是post传递过来的值
      

  3.   


    我这里先接收到的是post传递的值。。
    那么肯定的结论就是post在get之前了?
      

  4.   

    感谢~~~~学习了,先接收到的是get,只是如果同名的话,post的会覆盖get传递来的值。
    variables_order = "EGPCS"
    也就是说接收循序是从左到右,后面的覆盖签名的了"EGPCS"
    E = ?
    G = GET
    P = POST
    C = COOKIE
    S = SESSION?
      

  5.   

    大哥,我有点糊涂了,在一个表单提交的过程中,哪些数据是属于http header的,哪些是http 正文的?
    我用http watch看了一下,GET数据是在query string中,而POST是在post data中。
    GET的数据仅仅是在http header中的
    (Request-Line) GET /test/newfile.php?test=test HTTP/1.1
    中显示了一下,您的意思是http header是包括query string与post data的?
      

  6.   

    再次感谢xuzuning 许多次的帮助:)
      

  7.   

    不敢苟同,应该是你以什么方式访问页面$_REQUREST就先获得该方式的值吧
      

  8.   

    http header是包括query string与post data的很简单就知道了。
    你模拟post请求的时候,你的post数据是加在header头里还是加在什么地方的??????
      

  9.   

    哦,也就是说HTTP协议的正文区在哪?没正文区?
      

  10.   

    header数据后面会有一个空行。
    空行的下面就是正文了。正规的头,header后有一个Close的标识
      

  11.   

    可以参考下这个 HTTP Get 与 HTTP Post 详细介绍
      

  12.   

    看了看楼上老兄发的文章
    GET请求请提交的数据放置在HTTP请求协议头中,而POST提交的数据则放在实体数据中; GET方式提交的数据最多只能有1024字节,而POST则没有此限制 。POST传递的参数在doc里,也就http协议所传递的文本,接受时再解析参数部分!
      

  13.   


    正解EGPCS(Environment,GET,POST,Cookie,Server)