php Post限制为1000个变量

php Post限制为1000个变量,php,post,Php,Post,我有一个大表单,我可以从firebug中看到所有元素的值都被正确发送,但是当我打印r($\u POST)时,只显示了1000个变量。我的max_post_大小设置为25M,因此我知道这不是问题所在,我在php.ini中搜索了诸如“post”和“max”之类的关键字,但没有找到任何内容 1000只是我要传递的元素的1/4,所以很明显,这对我来说是一个相当大的问题,我非常感谢能得到的任何帮助。我知道你在这里做了什么 max_input_vars, 1000 为防止哈希冲突攻击而引入: 但在5.3.

我有一个大表单,我可以从firebug中看到所有元素的值都被正确发送,但是当我打印r($\u POST)时,只显示了1000个变量。我的max_post_大小设置为25M,因此我知道这不是问题所在,我在php.ini中搜索了诸如“post”和“max”之类的关键字,但没有找到任何内容


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

我知道你在这里做了什么

max_input_vars, 1000
为防止哈希冲突攻击而引入: 但在5.3.9中失败:
因此,如果出现问题,您应该更新到5.3.10+。

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

我的解决方案是将数组
内爆()
成一个长字符串,然后
在服务器端将其分解()


json\u encode()
可能也能工作。

我遇到了与使用PHPV5.4.20时1000变量限制完全相同的问题。尽管php.ini文件没有包含任何这样的“max\u input\u vars”行,但我只是在[php]的顶部找到了一个方便的位置,添加了“max\u input\u vars=10000”行,重新启动了Apache,所有问题都解决了。

Ok。我已经用jquery找到了一个解决方案

我是这样做的

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

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

只有1000个变量?这可能是HTTP协议的一个限制(尽管我从未听说过)。有什么方法可以使你的帖子中发送的变量数量最小化?我从来没有听说过一个站点有超过9000个(不得不说)POST变量。@lolwut-实际上他有4000个!!我很想看看这个表格,你有链接吗?哈哈,你怎么能连页面都没看到就这么说呢?如果我在描述应用程序方面做得不够好,很抱歉,但你必须相信我的话。也可以是
suhosin.post.max_vars=1000
(当然,如果他使用的是suhosin)。@Crontab,可能是,你是对的,但是所有托管公司都应该更新到5.3.10+:)我看到了关于max_input_vars和suhosin.post.max_vars的设置,但在我的php.ini中都没有。我已经安装了5.3.6。@jreed121您是否尝试过将其关闭并再次打开:)已在此处选中,没有关于限制的消息,抱歉。。。如果可以,请更新PHP。对($i=0;$i<4000;$i++)$\u POST[$i]=rand()进行了快速测试
在少数版本上没有问题。请检查PHP版本的
phpinfo()
,是否启用了suhosin,如果适用,请检查
suhosin.post.max\u vars
max\u input\u vars
的值。