如何在PHP中增加最大POST变量?

时间:2012-02-22 16:56:32

标签: php post wamp

我在我的本地机器上使用WAMP,当提交带有2000个输入字段的FORM(method =“POST”)时,我只能读取1001 _POST变量。即使用Netbeans调试器,如果表单中有超过1001个输入字段,我可以清楚地看到_POST大小始终为1001。

我使用这个http://ideone.com/GAw14 java代码生成带有N个输入字段的表单并进行测试。

在另一台机器(WAMP)中工作正常,我可以看到所有POST变量。

请帮我解决问题。

5 个答案:

答案 0 :(得分:82)

PHP 5.3.9引入了max_input_vars配置选项,默认值为1000.查看PHP手册的Runtime Configuration部分。默认值和更改日志位于页面顶部。

可以通过更新服务器的php.ini,添加.htaccess文件或adding a line to httpd.conf来更改该值。

答案 1 :(得分:18)

如果您在强化PHP中使用Suhosin,则可能会达到它所强加的最大变量限制。在你的php.ini中,你可以添加

[suhosin]
suhosin.request.max_vars = 1000
suhosin.post.max_vars = 1000

1000更改为您想要的任何内容,然后重新启动您的网络服务器。

我在Drupal Permissions页面遇到了这个问题,当时安装了大量具有大量角色的模块,这导致了大量的复选框。只会被忽略之前,它只能保存一定数量的它们。

听起来这可能不是你的问题,但是因为很有可能未来的某个人在搜索相关的东西时偶然发现这个,我会继续把它扔进去,因为我花了很长时间才弄明白我很难过。

答案 2 :(得分:6)

我通过将以下内容添加到php.ini来解决了我的$ _POST max inputs -problem:

max_input_vars = 5000
suhosin.request.max_vars = 5000
suhosin.post.max_vars = 5000

请注意suhosin.request.max_vars。

答案 3 :(得分:1)

我解决了这个问题。打开PHP.INI配置文件并添加这些行

[了Suhosin]

suhosin.post.max_vars = 20000

suhosin.request.max_vars = 20000

答案 4 :(得分:-1)

我怀疑问题在于您的POST请求带来的数据量。没有设置限制可以设置的$ _POST变量的数量。但是POST数据的内存限制默认为8MB。

在php.ini文件中尝试修改post_max_size的值并将其设置为更高的值。不要忘记在更改后重新启动apache。