我在我的本地机器上使用WAMP,当提交带有2000个输入字段的FORM(method =“POST”)时,我只能读取1001 _POST变量。即使用Netbeans调试器,如果表单中有超过1001个输入字段,我可以清楚地看到_POST大小始终为1001。
我使用这个http://ideone.com/GAw14 java代码生成带有N个输入字段的表单并进行测试。
在另一台机器(WAMP)中工作正常,我可以看到所有POST变量。
请帮我解决问题。
答案 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。