逃避&在GET

时间:2014-03-01 01:42:37

标签: php get

我有这个链接:

http://localhost/dow.php?url=/site.net/page.php?action=download&id=3424&authkey=234234324242342

$_GET["url"]

应该是

=/site.net/page.php?action=download&id=3424&authkey=234234324242342` 

但是当我尝试

print $_GET["url"]; 

它只打印/site.net/page.php?action=download

问题显然与& char,我试过htmlspecialchars($_GET["url"])没有运气。 我该怎么做才能拥有整个字符串?

3 个答案:

答案 0 :(得分:0)

不是因为其他两个参数不同。

你需要分别得到他们每个人。比如$_GET['id'], $_GET['authkey']

或者您可以使用foreach构造。

foreach($_GET as $k=>$v)
{
 $myparams[$k]=$v;
}

echo $myparams['authkey'];// "prints" 234234324242342

答案 1 :(得分:0)

我不知道你在哪里获得了目标网址,但是在将其打印到get之前尝试对其进行编码。 即JS中的encodeURIComponent函数,PHP中的rawurlencode,或者只使用此ref here来替换您想要的任何html字符。 rawurldecode之后的$_GET['url']

答案 2 :(得分:0)

要获得完整的请求,您必须使用$_SERVER['QUERY_STRING'];

例如:

echo $_SERVER['QUERY_STRING'];
相关问题