2011-02-03 5 views
4

Я до сих пор несколько новичок в php и задавался вопросом, как лучше извлечь переменную $_GET из URL-адреса.Как правильно извлечь переменные get

, например, как бы я захватить его из чего-то вроде этого:

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

просто хочу, чтобы получить все, что от «token=etc ...»

заранее спасибо

ответ

15

Простой способ:

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

Если token установлен он назначен $token, в противном случае $token равна нулю.

4

$_GET является массив:

$token = $_GET['token']; 

Так что если вы печатаете o ешь, вы должны увидеть токены части строки запроса:

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

ПРИМЕЧАНИЕ

Если вы пытаетесь использовать $ маркера для поиска в базе данных MySQL, вам нужно сначала избежать косых черт, чтобы предотвратить вопросы безопасности:

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

Кроме того, в первую очередь необходимо иметь подключение к MySQL перед вызовом mysql_real_escape_string().

ПРИМЕЧАНИЕ V.2

В вашей строке запроса, ваш маркер будет все от ?token= до PHP не обнаруживает ключ запроса/пару разделителя (как правило, & и ;). А именно:

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

&token2=otherstuff будет еще один ключ доступен $_GET['token2'], так что это не будет проблемой, с $_GET['token'].

+0

это то, что я пытался, но это ничего не дает – LightningWrist

+0

Вам нужно разместить код, который вы используете то. Вот как работает массив $ _GET. –

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"]; 
0

Решение 1:

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

Здесь, если переменная не set.It возвращает нуль

Решение 2:

$token = $_GET['token']; 
Смежные вопросы