我在PHP脚本中使用$_SERVER['QUERY_STRING']
。我的?e+e
查询字符串工作正常,但?e|e
没有。
我的PHP脚本很简单:
<?php
echo $_SERVER['QUERY_STRING'];
?>
为什么|
不起作用?如果我不使用|
,我似乎可以使用$_SERVER['QUERY_STRING']
。
答案 0 :(得分:0)
如果您在浏览器中手动添加管道符号,则可能会发生这种情况
尝试这样做:?e%7Ce
答案 1 :(得分:0)
您需要将|
符号编码为%7C
。然后它会工作。 $_SERVER['QUERY_STRING']
会自动解码。
答案 2 :(得分: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.