6

似乎较旧的 PHP 版本和一个表单中的 1000 多个输入字段存在问题(请参阅此问题)。

如果我使用较旧的 PHP 版本运行网络服务器,那么(一个嵌套级别)中的表单元素的最大数量是否有限制,就像自 PHP 5.3.9 以来它由php.ini 指令 max_input_vars控制一样?

还是旧版本没有限制?

如果我在旧版本的 php.ini 或 .htaccess 中设置此变量会怎样?

我注意到,在我的服务器上我运行的 PHP 5.3.3-7+squeeze17 也已经有了指令max_input_vars

旧版本的行为究竟如何?

4

3 回答 3

3

似乎有混乱:

http://www.flowstopper.org/2012/12/my-php-wtf-of-day-maxinputvars.html

尽管文档说:“自 PHP 5.3.9 起可用。”

http://php.net/manual/en/info.configuration.php

如果我不得不猜测,我会说总是有一个限制,它只是在 5.3.9 中被拉到配置/文档中

于 2013-09-27T04:54:30.203 回答
1

旧版本似乎有一个错误:

https://bugs.php.net/bug.php?id=65778

尽管您可以更改 php.ini 中的指令并且更改正确显示在 中phpinfo(),但它没有效果。

行为:所有超过 1000 的变量都被忽略

在没有 suhosin 模块的 PHP 5.3.3-7+squeeze17 中测试

一种可能的解决方法:使用 javascript 压缩所有表单数据

于 2013-09-28T05:54:03.603 回答
-1

我认为您的问题不在于表单字段的数量,我认为您发送的总数据太多。

有一个 php.ini 指令可以限制您在发布请求中完全可以发送多少数据(检查:post_max_size)。

但是你不能post_max_size在运行时更改(因为在 php 的输入阶段在你的 php 文件的第一行之前检查了这个值)。

您有几种方法可以更改此值:

  1. 在网络服务器配置中
  2. 在 htaccess 文件中

使用以下代码:

php_value post_max_size 512M # set maximum post data to 512 MB
  1. 在你的全局 php.ini
  2. 在您的users.ini中(如果已配置)

使用以下代码:

post_max_size = 512M
于 2013-09-27T06:15:19.290 回答