1

我正在努力读取数组中包含超过 512 个字符的查询变量$_GET。但是,如果我使用 解析查询字符串parse_string,我可以从结果数组中很好地读取它。

例子:

# GET /test.php?foo=<string with 513 characters>&bar=bar HTTP/1.1

<?php
var_dump($_GET['foo']); # NULL
var_dump($_GET['bar']); # "bar"

parse_str($_SERVER['QUERY_STRING'], $output);
var_dump($output['foo']); # <string with 513 characters>
?>

这对我来说毫无意义,因为在内部$_GET使用parse_str从查询字符串派生查询变量。我错过了什么吗?

4

1 回答 1

3

有一个 PHP 错误报告。#50449

值超过 512 个字符的 GET 参数不会出现在 $_GET 和 $_REQUEST 数组中。自从升级到 5.3.1 后我们就注意到了这一点

它在那里说是 Suhosin 导致了这种行为。

于 2010-11-09T12:21:35.450 回答