Как правильно извлекать получить переменные


Я все еще немного новичок в php и задавался вопросом, как лучше извлечь переменную $_GET из url.

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

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

Просто хочу получить все от " token=etc..."

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

4 4

4 ответа:

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

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

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

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

$token = $_GET['token'];

Поэтому, если вы распечатаете, вы должны увидеть маркерную часть строки запроса:

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

Примечание

Если вы пытаетесь использовать $ token для поиска базы данных 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'].

Таким образом, у вас действительно есть 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"];

Решение 1:

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

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

Решение 2 :

$token = $_GET['token'];