4

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

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

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

或者

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

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

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

4

3 回答 3

7

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

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

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

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

于 2012-07-27T11:11:18.147 回答
2

只需通过浏览器访问一个页面或单击一个链接就是一个 GET 请求。

于 2012-07-27T11:11:27.210 回答
1

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

也许您还可以检查您的操作 URL。

于 2014-01-20T00:52:05.773 回答