长查询字符串变量缺失

发布于 2024-12-21 06:59:18 字数 348 浏览 2 评论 0原文

我有一个相当长的查询字符串变量(值约为 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

凹づ凸ル 2024-12-28 06:59:18

也许您有 hardend/suhosin 版本的 php。它提供配置指令来限制输入参数的名称和值的长度。

suhosin.get.max_name_length

 类型:整数
    默认值:64

定义通过 URL 注册的变量的变量名称的最大长度。对于数组变量,这是索引前面的名称。

suhosin.get.max_totalname_length

 类型:整数
    默认值:256

定义通过 URL 注册时总变量名称的最大长度。对于数组变量,这包括所有索引。

suhosin.get.max_value_length

 类型:整数
    默认值:512

定义通过 URL 注册的变量的最大长度。

Maybe you have a hardend/suhosin version of php. It provides configuration directives to limit the length of names and values for input parameters.

suhosin.get.max_name_length

    Type: Integer
    Default: 64

Defines the maximum length of variable names for variables registered through the URL. For array variables this is the name in front of the indices.

suhosin.get.max_totalname_length

    Type: Integer
    Default: 256

Defines the maximum length of the total variable name when registered through the URL. For array variables this includes all indices.

suhosin.get.max_value_length

    Type: Integer
    Default: 512

Defines the maximum length of a variable that is registered through the URL.

奶气 2024-12-28 06:59:18

我刚刚在 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 that max_input_vars in php.ini setting controls the number of variables parse_str() will read in this version of PHP.

Also note that max_input_vars applies even if you are using the CLI runtime.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文