POST与$

有些人称我的一个Snipplr提交“垃圾”,因为我使用if ($_SERVER['REQUEST_METHOD'] == 'POST')而不是if ($_POST)

检查请求方法似乎对我更为正确,因为这正是我真正想要做的。 这两者之间有一些运营差异还是仅仅是代码清晰度问题?


那么,他们真的不这样做。

$_SERVER['REQUEST_METHOD']包含请求方法(意外)。

$_POST包含任何发布数据。

POST请求可能不包含POST数据。

我检查了请求方法 - 我从来没有想过要测试$_POST数组。 不过,我检查了所需的帖子字段。 所以一个空的帖子请求会给用户很多错误信息 - 这对我来说很有意义。


if ($_SERVER['REQUEST_METHOD'] == 'POST')是正确的方式,您可以发送一个没有任何发布数据的发布请求。


我曾经检查$_POST直到遇到更大的POST数据和上传文件时出现问题。 有配置指令post_max_sizeupload_max_filesize - 如果超过它们中的任何一个,则不填充$_POST数组。

所以“安全方式”是检查$_SERVER['REQUEST_METHOD'] 。 不过,您仍然必须在每个$_POST变量上使用isset() ,无论您检查还是不检查$_SERVER['REQUEST_METHOD'] ,都无关紧要。

链接地址: http://www.djcxy.com/p/42257.html

上一篇: POST vs. $

下一篇: is this bulletproof to get the url with alias