Получение данных из строки GET параметром
Самым простым способом передачи данных на сервер приложению PHP извне представляет передача данных через строку запроса.
Строка запроса представляет набор параметров, которые помещаются в адресе после вопросительного знака. При этом каждый параметр определяет название и значение:
https://hmarketing.ru/user.php?name=Tom&age=36
Часть ?name=Tom&age=36
представляет строку запроса, в которой есть два параметра name
и age
. Для каждого параметра определено имя и значение, которые отделяются знаком равно. Параметр name
имеет значение "Tom", а параметр age
- значение 36. Друг от друга параметры отделяются знаком амперсанда.
Например, определим следующий скрипт user.php со следующим содержимым:
<?
$name = "не определено";
$age = "не определен";
if(isset($_GET["name"])){
$name = $_GET["name"];
}
if(isset($_GET["age"])){
$age = $_GET["age"];
}
echo "Имя: $name <br> Возраст: $age";
Когда мы вводим в адресную строку браузера некий адрес и нажимаем на оправку, то серверу отправляется запрос типа GET
. В PHP по умолчанию определен глобальный ассоциативный массив $_GET
, который хранит все значения, передаваемые в запроса GET
. Используя ключи передаваемых данных, мы можем из массива $_GET
получить передаваемые значения.
При отправки строки запроса ключами в этом массиве будут названия параметров, а значениями - значения параметров.
Например, в строке запроса передается параметр name=Tom
. Соответственно, чтобы получить значение параметра name из запроса, обращаемся по соответствующему ключу:
$name = $_GET["name"]; // Tom
Однако стоит учитывать, что в адресной строке необязательно будет использоваться строка запроса или конкретно данный параметр. Поэтому перед получением значения параметра сначала смотрим, а передан ли вообще такой параметр:
if(isset($_GET["name"]))
Теперь обратимся к этому скрипту, например, так:
https://hmarketing.ru/user.php?name=Tom&amp;age=36
Если мы не передадим значения какого-либо параметра, то соответствующая переменная будет использовать значение по умолчанию: