$ _SERVER [' REQUEST_METHOD']评估为' GET'默认情况下

时间:2012-07-27 11:05:29

标签: php http-post http-get

对此进行了一些挖掘,但是,没有运气找到信息

我正在尝试检查表单是否已提交,以及是GET还是POST。基本上我用的是:

if($_SERVER['REQUEST_METHOD'] == 'GET')

if($_SERVER['REQUEST_METHOD'] == 'POST')

但是,我发现如果我不提交任何表单,只是直接转到页面 - 一个简单的HTTP请求,REQUEST_METHOD就是GET。是什么赋予了?这是设计的吗?如果是,那么我不能使用前一个语句来检查表单是否已通过GET提交。似乎有点多余......

有更多知识的人请向我解释一下,我将不胜感激。感谢。

3 个答案:

答案 0 :(得分:7)

基本上大多数HTTP请求都是GET请求。

您可以使用if($_POST)来检查它是否为POST。 (这是包含POST数据的数组。所有页面都设置了$_GET,因此if($_GET)无法判断它是否为GET)

但是,if(count($_GET)>0)会告诉您是否有$ _GET数据。

您可以同时拥有POST和GET数据,方法是向其中包含GET数据的网址发送POST请求(即http://example.unreal?GetData=4&OtherData=no

答案 1 :(得分:1)

只需通过浏览器访问某个页面或点击链接即可获得GET请求。

答案 2 :(得分:1)

我遇到了同样的问题,并由此解决: 当表单操作设置为iprofile?r=search时,请求方法始终为GET,表单中的所有输入数据都将丢失。但是当我将操作设置为iprofile/?r=search时,请求方法将成为POST。

也许您也可以查看您的操作网址。