如何在PHP中更改POST变量的最大数量?

2022-08-30 11:16:43

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

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

请帮我解决我的问题。


答案 1

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

可以通过更新服务器的php.ini,添加.htaccess文件或向httpd.conf添加一行来更改该值。


答案 2

如果您将 Suhosin 与 Hardened PHP 一起使用,则可能会达到它施加的最大变量限制。在你的php.ini中,你可以添加

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

更改为所需的任何内容,然后重新启动Web服务器。1000

我在Drupal权限页面上遇到了这个问题,当时安装了很多模块和大量角色,这导致了大量的复选框。它只会保存一定数量的它们,然后之后的任何东西都会被忽略。

听起来这可能不是你的问题,但是由于将来很可能有人在寻找相关的东西时偶然发现这一点,我会继续把它扔进去,因为我花了很长时间才弄清楚我什么时候被难住了。


推荐