为何_GET可以获得_POST请求?

$_GET获得get请求的数据
$_POST获得post请求的数据

下面这个例子

<html>
    <body>
    <?
        $flag = $_GET["flag"];
        if($flag=='1')
            echo '欢迎'.$_POST["user"]."光临";
        else
            echo  ' 
            <form action="?flag=1" method="post">
                姓名:<input type="text" name="user" size=15>
                <input type="submit" value="submit">
            </form>';
    ?>
</body>
</html>

第一次打开这个网页是一个form
填写姓名后,点击submit ,使用的是post 方法,为何$_GET["flag"] 可以得到flag的值?

有点不太理解里面的工作原理。
这里的数据究竟是post还是get方式传递的?还是两种方式都传了一遍?

阅读 1.4k
1 个回答

关键在于post时用了这样的url "?flag=1" ,这样做的结果是flag作为了一个get参数传递到后台,所以后台可以同时取到$_GET参数里的flag和$_POST里的其他form参数。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题