【问题标题】:How to change maximum number of POST variable in PHP?如何更改 PHP 中 POST 变量的最大数量?
【发布时间】:2021-01-07 00:13:09
【问题描述】:

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

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

请帮我解决我的问题。

【问题讨论】:

  • 为什么不从另一台机器获取 php.ini 并将其与您当前的机器进行比较,看看应该为 post_max_size 等变量添加什么?
  • 你在使用 Suhosin(强化 PHP)吗?
  • 不知道是php限制还是浏览器限制...
  • @Lenny,但是,我认为post_max_size 变量会影响这一点,增加它应该可以解决问题。正如 OP 所述,由于它适用于另一种设置,因此新安装的 post_max_size 设置可能较小,需要增加。
  • Web 浏览器从不删除 post vars。 PHP 的最新版本重述了 max_input_vars security.stackexchange.com/questions/10646/…,因此它可能会影响您。检查您是否真的需要 2000 个变量(许多防火墙也进行此类过滤,因此您的代码可能不可移植)

标签: php post wamp


【解决方案1】:

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

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

【讨论】:

  • 感谢一位同事,他昨天遇到了这个问题,然后很高兴与团队分享他的发现:)
  • 对于将来搜索的人,我发现截至 2013 年 3 月 15 日的默认 cPanel 服务器将输入变量的数量限制为 512。我们的一些脚本传递的数量远不止于此,并添加了 max_input_vars到 php.ini 解决了这个问题。
【解决方案2】:

如果您将 Suhosin 与强化 PHP 一起使用,您可能会达到它所施加的最大变量限制。在您的 php.ini 中,您只需添加

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

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

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

听起来这可能不是您的问题,但是由于将来有人在搜索相关内容时很可能会偶然发现此问题,因此我会继续将其扔进去,因为我花了很长时间才弄清楚何时我被难住了。

【讨论】:

  • 谢谢。我没有使用 Suhosin。
  • php5.4 或 php5.5 没有 suhosin :(
【解决方案3】:

我通过将以下内容添加到 php.ini 解决了我的 $_POST 最大输入问题:

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

还要注意 suhosin.request.max_vars。

【讨论】:

  • max_input_vars 非常适合我的情况 :)
【解决方案4】:

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

[苏霍辛]

suhosin.post.max_vars = 20000

suhosin.request.max_vars = 20000

【讨论】:

    【解决方案5】:

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

    在您的 php.ini 文件中尝试修改 post_max_size 的值并将其设置为更高的值。修改完成后别忘了重启apache。

    【讨论】:

    • 我将 post_max_size 修改为 81M 也为 0 并重新启动 WAMP 仍然存在问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-28
    • 1970-01-01
    相关资源
    最近更新 更多