2015-07-10 52 views
0

我想通过POST使用POST方法发布大型表单。我的表单发布脚本一直工作得很好,直到现在$_POST数组变得非常大。

当我打印出file_get_contents ('php://input');时,会显示窗体中包含的所有输入。但是当我打印出$_POST时,它只获得表格的第一部分。我试图删除行,然后$_POST方法再次正常工作。只要它变得太大,它就不会发布表单中包含的所有数据。

任何人有任何想法?我试图编辑php.ini并将post_max_size设置为更高的值,但它也没有帮助。

+1

请显示一些代码。 – Milen

+0

可能重复[$ \ _ POST最大数组大小](http://stackoverflow.com/questions/9807100/post-max-array-size) – Lance

回答

1

尝试转储phpinfo()并查找max_input_vars。如果它在那里,你可以在php.ini中将它设置为更高的数字,只要你认为合适。如果你没有看到它,很可能你没有收到这个确切的补丁,并且这个数字已经被你的发行版硬编码了。

2

默认情况下,在较低版本的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);

  • 工作
+0

我试图在php.ini中编辑'max_input_vars',但是那也没有帮助。我目前的PHP版本是5.6.9 – user2994294

+0

@ user2994294做'var_dump(count($ _ POST,COUNT_RECURSIVE))'看看你有多少。不妨看看你从哪里开始。 – Andrew

+0

得到了输出int(1165) – user2994294

1

刚解决它,显然我的服务器没有更新max_input_vars出于某种奇怪的原因。现在,我增加了它的价值,它的工作。

+0

考虑接受答案,以便人们可以在将来类似的情况下参考。 – Andrew

相关问题