php Post限制为1000个变量

时间:2012-02-29 19:14:10

标签: php post

我有一个大表单,我可以从firebug看到所有元素的值都正确发送,但是当我print_r($ _ POST)时,只显示了1000个变量。我的max_post_size设置为25M所以我知道这不是问题,我通过我的php.ini搜索了诸如'post'和'max'之类的关键字,我没有找到任何东西。

1000只是我传递的元素的1/4左右,所以这对我来说是一个非常大的问题,我非常感谢我能得到的任何帮助。

3 个答案:

答案 0 :(得分:35)

我看到你在这里做了什么。

max_input_vars, 1000

为了防止哈希冲突攻击而引入: http://www.phpclasses.org/blog/post/171-PHP-Vulnerability-May-Halt-Millions-of-Servers.html 但在5.3.9中失败了: http://www.phpclasses.org/blog/post/175-Another-Serious-Security-Bug-on-PHP-539.html 因此,如果出现问题,您应该更新到5.3.10+。

答案 1 :(得分:7)

使用PHP v5.4.20,我有1000个变量限制的完全相同的问题。即使php.ini文件没有包含任何这样的'max_input_vars'行,我只是在顶部[PHP]部分找到了一个方便的位置插入它,添加了行'max_input_vars = 10000',重新启动了Apache,一切都解决了

答案 2 :(得分:6)

我有类似的情况;我只能发布数组的前1000个元素。

我的解决方案是将implode()数组转换为一个长字符串,并将explode()放在服务器端。

json_encode()可能也可以。