PHP url解码不起作用

时间:2015-09-11 10:26:38

标签: php urldecode

我有一个URL,参数pass是urlencoded:

http://ipaddress/userandpass.php?user=test&pass=145Red#321OK

为了解码这个参数,我尝试使用urldecode and rawurldecode and utf8_decode(urldecode())但没有成功。 我的代码如下所示:

if(isset($_GET["pass"]) && $_GET["pass"] != ""){
$pass=urldecode($_GET["pass"]);
}

您对我如何解决此问题有任何想法吗?

1 个答案:

答案 0 :(得分:0)

我不确定你是不是想要做,但我认为你的密码中可以包含各种各样的字符,包括通常在查询字符串中找到的密码元素。

虽然您应该考虑从未在GET或uri中首先发送包含敏感数据的参数。

但要回答你的问题: 我会这样做:

$parts = explode('?', $_SERVER['REQUEST_URI']);
array_shift($parts); //we dont want the first bit, only everything after the first questionmark
$qstring = implode('?', $parts);
parse_str($qstring, $parameters);
if (isset($parameters["pass"]) && $parameters["pass"] != "") {
    $pass = urldecode($parameters["pass"]);
}