我正在努力阅读$_GET
数组中包含超过512个字符的查询变量。但是,如果我使用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
从查询字符串派生查询变量。我错过了什么吗?
答案 0 :(得分:3)
有一个PHP错误报告。 #50449
值不超过512个字符的GET参数不会显示 $ _GET和$ _REQUEST数组。我们已经注意到这一点,因为升级到 5.3.1
它说是Suhosin引起了这种行为。