我尝试使用POST方法通过php发布大型表单。我的表单发布脚本一直运行良好,直到现在$_POST
数组变得非常大。
当我打印出file_get_contents ('php://input');
时,会显示表单中包含的所有输入。但是当我打印出$_POST
时,它只会获得表单的第一部分。我尝试删除行,然后$_POST
方法再次正常工作。一旦它变得太大,它就不会发布表格中包含的所有数据。
有人有任何想法吗?我已尝试修改php.ini
并将post_max_size
设置为更高的值,但它也没有任何帮助。
答案 0 :(得分:3)
默认情况下,在较低版本的PHP(< 5.3.9)中,$_POST
变量的数量限制为1000.无法更改。
在更高版本中,您可以将max_input_vars
设置为您想要的任何数字。
如果你低于5.3.9,你可以做一些解决方法。例如json_encode
变量并将它们作为单个变量发送。 $_POST
的限制默认设置为8mb
,但可以在php.ini
文件post_max_size="whatever_size_you_wish_here"
中更改。
如何增加$_POST
中的变量数量:
2个选项:
.htaccess
文件中的执行php_value max_input_vars 2000(or whatever)
在您使用ini_set('max_input_vars', 2000);
答案 1 :(得分:1)
尝试转储phpinfo()并查找max_input_vars。如果它在那里,您可以在php.ini中将其设置为更高的数字,如您所见。如果您没有看到它,很可能您没有收到该确切的补丁,并且该号码已被您的发行版硬编码。
答案 2 :(得分:1)
刚刚解决了,显然我的服务器因为某些奇怪的原因没有更新max_input_vars。现在我增加了这个价值,它正在发挥作用。