Урок 10: Передача переменных через URL
При работе с PHP часто необходимо передать переменные с одной страницы в другую. Этот урок - о передаче переменных в URL.
Как это работает?
Возможно, вас удивляло, почему некоторые URL выглядят наподобие этого:
http://html.net/page.php?id=1254
Почему после имени страницы стоит знак вопроса?
Ответ: символы после знака вопроса это строка HTTP-запроса. Строка HTTP-запроса может содержать как имена переменных, так и их значения. В вышеприведённом примере строка HTTP-запроса содержит переменную "id" со значением "1254".
Вот другой пример:
http://html.net/page.php?name=Joe
То есть у вас снова переменная ("name") со значением ("Joe").
Как получить переменную с помощью PHP?
Предположим, у вас есть PHP-страница people.php. Можно вызвать её с использованием URL:
people.php?name=Joe
В PHP вы можете получить значение переменной 'name' таким образом:
$_GET["name"]
То есть вы используете $_GET для поиска значения именованной переменной. Попробуем на примере:
<html> <head> <title>Строка запроса</title> </head> <body> <?php // Значение переменной найдено echo "<h1>Hello " . $_GET["name"] . "</h1>"; ?> </body> </html>
Попробуйте в этом примере заменить "Joe" вашим собственным в URL и снова вызвать документ! Довольно прикольно, а?
Несколько переменных в одном URL
В URL можно передавать и не одну переменную. Разделяя переменные знаком &, можно передавать несколько:
people.php?name=Joe&age=24
Этот URL содержит две переменные: name и age. Как и ранее, можно получит переменные так :
$_GET["name"] $_GET["age"]
Добавим в пример ещё одну переменную:
<html> <head> <title>Строка запроса</title> </head> <body> <?php // Значение имени переменной name найдено echo "<h1>Hello " . $_GET["name"] . "</h1>"; // Значение имени переменной age найдено echo "<h1>You are " . $_GET["age"] . " years old </h1>"; ?> </body> </html>
Вы узнали, как передать значения между страницами с использованием URL. В следующем уроке мы изучим другой способ: формы.