У меня есть URL-адрес, в котором параметр передачи 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"]);
}
У вас есть идеи о том, как я могу решить эту проблему?
просто используйте
if(!empty($_GET["pass"]))
{
$pass= $_GET["pass"];
}
http://www.test.com/index.htm?name1=value1&name2=value2
QUERY_STRING
переменная окружения.$_GET
ассоциативный массив для доступа ко всей отправленной информации, используя метод GET.Я не уверен, что вы пытаетесь это сделать, но я предполагаю, что ваш пароль может содержать все виды символов, включая те, которые обычно находятся в качестве ключевого элемента в строке запроса.
Хотя вы должны учитывать, что никогда не отправлять параметры, которые содержат конфиденциальные данные, в 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"]);
}