警告使PHP忽略$ _POST

时间:2016-05-09 05:11:17

标签: php post

提交文件附件超过POST内容长度限制的表单时,我收到以下警告

Warning: POST Content-Length of 143854246 bytes exceeds the limit of 134217728 bytes in Unknown on line 0

我的问题是,由于某些原因,PHP的行为就好像$_POST['form_input_field']不存在而且我收到此错误

Undefined index: form_input_field ...

输入存在并包含值,如果文件没有超出限制,PHP就可以了。

我通过添加isset isset($_POST['form_input_field'])解决了这个问题。但有没有解释为什么PHP无法获得$_POST['form_input_field']

编辑:

  

我没有遇到限制问题,也不想增加限制。

修改 我无意增加上传限制。我只是想知道为什么PHP认为$_POST['form_input_field']在警告之后不存在。

2 个答案:

答案 0 :(得分:3)

你应该增加你的帖子限制

使用php.ini

post_max_size=20M
upload_max_filesize=20M

使用.htaccess / httpd.conf / virtualhost include

php_value post_max_size 20M
php_value upload_max_filesize 20M

注意:20M代表示例根据您的要求进行更改

答案 1 :(得分:2)

回答实际问题“有没有解释为什么PHP无法获取输入?”的情况下“我没有限制的问题和不想增加它。“

这是PHP的奇怪行为,如果超出该限制,它将删除所有其他POST数据。这可能是因为如果POST的一部分违反了规则,那么POST会在一起变得无效(这是有意义的)

  

如果发布数据的大小大于post_max_size,则为$ _POST和   $ _FILES superglobals是空的。

您可以在此处阅读http://php.net/manual/en/ini.core.php#ini.post-max-size