【发布时间】:2010-02-26 11:19:44
【问题描述】:
POST 参数是否有限制?我的情况是在开发服务器上发布并保存了超过 520 个参数的表单没有问题,而在生产环境中它最多只能保存 499 个参数...
有什么想法吗?
【问题讨论】:
POST 参数是否有限制?我的情况是在开发服务器上发布并保存了超过 520 个参数的表单没有问题,而在生产环境中它最多只能保存 499 个参数...
有什么想法吗?
【问题讨论】:
我认为通过 POST 发送的变量的 数量 没有限制,只是在它们累积的 大小 上。限制因服务器而异。
更新:Suhosin PHP hardening patch 实际上可以对请求变量的数量施加限制。默认值为
2001000。 Suhosin 默认安装在 Ubuntu 上,因此它可能是您的问题的原因。信息由@Pascal Martin 提供,干杯!
限制 POST 最大大小的因素有两个:
您可以使用phpinfo() 找出它的价值。
以及网络服务器的限制:
在您的具体情况下,您可能需要添加运行此程序的服务器类型以及数据量。 520 个参数是否接近post_max_size?如果您在接收脚本中执行print_r($_REQUEST) 会发生什么?
【讨论】:
另外,在 PNP.INI 文件中有一个设置:
max_input_vars
在我的 PHP 版本中:5.4.16 默认为 1000。
从手册: "可以接受多少个输入变量(限制分别应用于 $_GET、$_POST 和 $_COOKIE 超全局变量)"
参考:http://www.php.net/manual/en/info.configuration.php#ini.max-input-vars
【讨论】:
是的,这是由指令post_max_size 控制的,默认为8M。
参数的数量无关紧要,但您可能会超出生产中的限制。
你可以在两种环境下运行 ini_get('post_max_size') 看看是否有区别。
您不能从 ini_set 更改它,但是可以从 .htaccess 更改指令。
【讨论】:
我认为 POST 限制是 php.ini 中配置的任何内容(8M 默认?)
【讨论】:
需要在php.ini中增加POST_MAX_SIZE(或者在页面中使用ini_set())。
【讨论】: