PHP url 解码无效
PHP url decode do not work
我有一个 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"]);
}
您对我如何解决这个问题有什么想法吗?
只需使用
if(!empty($_GET["pass"]))
{
$pass= $_GET["pass"];
}
http://www.test.com/index.htm?name1=value1&name2=value2
- GET 方法生成一个长字符串,出现在您的服务器日志中,在浏览器的位置:框中。
- GET 方法最多只能发送 1024 个字符。
- 如果您有密码或其他敏感信息要发送到服务器,切勿使用 GET 方法。
- GET 不能用于向服务器发送二进制数据,如图像或 word 文档
- 可以使用
QUERY_STRING
环境变量访问GET方法发送的数据。
- PHP提供
$_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"]);
}
我有一个 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"]);
}
您对我如何解决这个问题有什么想法吗?
只需使用
if(!empty($_GET["pass"]))
{
$pass= $_GET["pass"];
}
http://www.test.com/index.htm?name1=value1&name2=value2
- GET 方法生成一个长字符串,出现在您的服务器日志中,在浏览器的位置:框中。
- GET 方法最多只能发送 1024 个字符。
- 如果您有密码或其他敏感信息要发送到服务器,切勿使用 GET 方法。
- GET 不能用于向服务器发送二进制数据,如图像或 word 文档
- 可以使用
QUERY_STRING
环境变量访问GET方法发送的数据。 - PHP提供
$_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"]);
}