在PHP中,是否有任何方法来确定传入的http请求是POST还是GET?

时间:2012-01-14 07:38:37

标签: php http post get

作为标题。

另外,我只是使用file_get_contents(php:// input)来获取它们 另外,我很困惑如何在PHP中使用$ _POST和$ _GET,即使经过长时间的网络学习!

据我所知,他们是阵列,但在很多例子中,我看到人们把钥匙放在

$_POST['key']

但是什么定义了密钥及其相应的值?
现在我没有从客户端获取html表单,但是互联网上的例子主要是处理它。

希望有人能够得到我的问题,并向我展示一些例子和解决方案,谢谢!

2 个答案:

答案 0 :(得分:4)

$_SERVER['REQUEST_METHOD'],在SAPI模式下运行时,总是会包含HTTP请求的方法:GET,POST,DELETE,HEAD等....使用此$ _SERVER var是100%可靠的。检查表单字段是否存在是不可靠的,特别是如果您正在修改表单 - 任何一方都有一个拼写错误而您的代码失败,因为正在寻找的内容不再存在。

if ($_SERVER['REQUEST_METHDO'] == 'POST') {
   $val = $_POST['somefield'];
}

答案 1 :(得分:1)

$ _ SERVER ['REQUEST_METHOD']将为您提供类型,但密钥通常由前一页或URL内容中提供的变量定义。

http://www.blah.com?key=something&key2=somethingelse

或页面上的表格等

方法“post”隐藏表单中的变量并以静默方式传递,而不是如上例所示在url中传递。 GET会在URL中显示它们(如果我没记错的话)