POST参数有限制吗?我有这样的情况,在开发服务器上我的表格超过520 args被发布并保存没有问题,在生产env它只保存最多499 args ...
有什么想法吗?
答案 0 :(得分:10)
我认为通过POST发送的变量的数量没有限制,仅限于累积的大小。限制因服务器而异。
更新:Suhosin PHP hardening patch实际上可以对请求变量的数量施加限制。默认值为
2001000。 Suhosin默认安装在Ubuntu上,因此可能是您遇到问题的原因。信息由@Pascal Martin提供,欢呼!
限制POST最大大小有两个因素:
您可以使用phpinfo()
找到它的价值。
Web服务器的限制:
在您的特定情况下,您可能希望添加运行此服务器的服务器类型以及数据量。 520个参数是否在post_max_size
附近?如果在接收脚本中执行print_r($_REQUEST)
会发生什么?
答案 1 :(得分:2)
此外,在PNP.INI文件中有一个设置:
max_input_vars
在我的PHP版本中:5.4.16默认为1000。
从手册中: “可以接受多少输入变量(限制分别应用于$ _GET,$ _POST和$ _COOKIE superglobal)”
参考:http://www.php.net/manual/en/info.configuration.php#ini.max-input-vars
答案 2 :(得分:1)
是的,这是由指令post_max_size控制的,默认为8M。
参数的数量无关紧要,但您可能超出了生产中的限制。
您可以在两个环境中运行ini_get('post_max_size')以查看是否存在差异。
您无法从ini_set更改它,但可以从.htaccess更改指令。
答案 3 :(得分:0)
我认为POST限制是php.ini中配置的任何内容(8M by 默认?)
答案 4 :(得分:0)
您需要在php.ini中增加POST_MAX_SIZE(或在页面上使用ini_set())。