如何正确提取获取变量

时间:2011-02-03 22:59:42

标签: php html url variables get

我仍然对php有点新,并且想知道从网址中提取$_GET变量的最佳方法。

例如我如何从这样的东西中捕获它:

http://www.blahblahblah.com/reset_password.php?token=3072420e7e32cbcf304da791537d757342cf5957

只想获取“token=etc ...”

中的所有内容

提前致谢

4 个答案:

答案 0 :(得分:17)

一种简单的方法:

$token = isset($_GET['token']) ? $_GET['token'] : null;

如果设置了token,则会将其分配给$token,否则$token为空。

答案 1 :(得分:4)

$_GET是一个数组:

$token = $_GET['token'];

因此,如果您打印出来,您应该会看到查询字符串的令牌部分:

echo "'Token: $token'"; // should display 'Token: 3072420e7e32cbcf304da791537d757342cf5957';

注意

如果您尝试使用$ token搜索mysql数据库,则需要首先转义斜杠,以防止出现安全问题:

$token = mysql_real_escape_string($_GET['token']);

此外,在调用mysql_real_escape_string()之前,首先需要建立mysql连接。

注意V.2

在您的查询字符串中,您的令牌将是?token=之前的所有内容,直到PHP遇到查询键/对分隔符(通常为&;)。即:

http://www.blahblahblah.com/reset_password.php?token=3072420e7e32cbcf304da791537d757342cf5957&token2=otherstuff

&token2=otherstuff$_GET['token2']可访问的另一个密钥,因此$_GET['token']不会出现问题。

答案 2 :(得分:1)

所以你实际上有一个URL 字符串,并希望从中提取值:

$url = "http://www.example.com/reset_pw.php?token=3072420e7e32cbc...";

$p = parse_url($url);          // splits up the url parts
parse_str($p["query"], $get);  // breaks up individual ?var= &vars=

print $get["token"];

答案 3 :(得分:0)

解决方案1:

$token = isset($_GET['token']) ? $_GET['token'] : null;

此处如果未设置变量。它返回null

解决方案2:

$token = $_GET['token'];