php Post限制为1000个变量


php Post limited to 1000 variables

我有一个大表单,我可以从firebug中看到所有元素的值都被正确发送,但当我打印_r($_POST)时,只显示1000个变量。我的max_postrongize设置为25M,所以我知道这不是问题所在,我在php.ini中搜索了诸如"post"answers"max"之类的关键字,但一无所获。

1000只是我通过的元素的1/4,所以很明显,这对我来说是一个很大的问题,我真的很感激能得到的任何帮助。

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

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+。

我也遇到过类似的情况;我只能POST数组的前1000个元素。

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

CCD_ 3可能也起作用。

我在使用PHP v4.4.20时遇到了同样的1000变量限制问题。尽管php.ini文件中没有任何这样的"max_input_vars"行,但我只是在顶部[php]部分找到了一个方便的位置,添加了"max_input _vars=10000"行,重新启动Apache,一切都解决了。

好的。我已经找到了一个使用jquery 的解决方案

我是这样做的

$("#single-form").submit(function(event) {
    event.preventDefault();
    var table_data = $(this).serialize();
    console.log(table_data);
  // ajax call to handle the data
}

serialize函数将给出所有表单数据的URL编码字符串,在PHP文件中只需使用函数parse_str将字符串解析为变量。