提交文件附件超过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']
在警告之后不存在。
答案 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