长查询字符串变量缺失
我有一个相当长的查询字符串变量(值约为 600 个字符),我试图从 PHP 脚本访问它。长变量不存在于 $_REQUEST
或 $_GET
中,但存在另一个值长度较短的变量。我已经删除了其中的一些内容进行测试,当该值达到 549 个字符或更多时,它开始丢失。
幸运的是,长变量存在于 $_SERVER["QUERY_STRING"]
中,所以现在我只是从那里选取它,但很好奇这是否是服务器设置(Apache 2)或我的 PHP 设置(5.2.17)或脚本有什么问题?
顺便说一句,查询字符串本身不是我控制的,所以不幸的是我无法改变它的工作方式,例如。通过 POST 发送。
I've got a pretty long query string variable (value is approximately 600 chars) that I'm trying to reach from a PHP script. The long one is not present in $_REQUEST
or $_GET
but another variable with shorter value length is. I've shaved off some of it to test and it starts going missing when the value is at 549 chars or more.
Fortunately the long variable is present in $_SERVER["QUERY_STRING"]
so for now I'm just picking it up from there, but was curious as to if this is a server setting (Apache 2) or something with my PHP setup (5.2.17) or script?
BTW, the query string itself is not something I control so unfortunately I can't change how that works, for ex. sending via POST.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
也许您有 hardend/suhosin 版本的 php。它提供配置指令来限制输入参数的名称和值的长度。
Maybe you have a hardend/suhosin version of php. It provides configuration directives to limit the length of names and values for input parameters.
我刚刚在 Debian Wheezy 的 PHP 5.4 中遇到了这个问题,它不使用 suhosin。我终于发现这个用户注释埋在
parse_str( )
页面,php.ini 设置中的max_input_vars
控制parse_str()
在此版本的 PHP 中读取的变量数量。另请注意,即使您使用的是 CLI 运行时,
max_input_vars
也适用。I just ran into this in PHP 5.4 in Debian Wheezy, which does not use suhosin. I finally found this user note buried on the
parse_str()
page thatmax_input_vars
in php.ini setting controls the number of variablesparse_str()
will read in this version of PHP.Also note that
max_input_vars
applies even if you are using the CLI runtime.