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_size
和upload_max_filesize
- 如果超过它们中的任何一个,则不填充$_POST
数组。
所以“安全方式”是检查$_SERVER['REQUEST_METHOD']
。 不过,您仍然必须在每个$_POST
变量上使用isset()
,无论您检查还是不检查$_SERVER['REQUEST_METHOD']
,都无关紧要。
上一篇: POST vs. $