我有一个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"]);
}
您对我如何解决此问题有任何想法吗?
答案 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"]);
}