0

$_SERVER['QUERY_STRING']在我的 PHP 脚本中使用。我的查询字符串?e+e工作正常,但?e|e没有。

我的 PHP 脚本很简单:

<?php
echo $_SERVER['QUERY_STRING'];
?>

为什么不起作用||如果我不使用 use ,我似乎可以使用$_SERVER['QUERY_STRING']

4

3 回答 3

0

如果您在浏览器中手动添加管道符号,则可能会发生这种情况

尝试这样做:?e%7Ce

于 2013-03-25T00:52:12.120 回答
0

您需要将|符号编码为%7C. 那么它将起作用。$_SERVER['QUERY_STRING']会自动解码。

于 2013-03-25T00:54:11.950 回答
0

这不是正确的 QUERY_STRING 原因“|” 是不允许的符号。RFC 2396 2.3。

Data must be escaped if it does not have a representation using an
unreserved character; this includes data that does not correspond to
a printable character of the US-ASCII coded character set, or that
corresponds to any US-ASCII character that is disallowed, as
explained below.
于 2013-03-25T00:57:42.250 回答