PHP $_GET
Суперглобальная переменная $_GET содержит массив переменных, полученных через HTTP-метод GET.
Суперглобальные переменные PHP — это встроенные переменные, которые всегда доступны во всех областях видимости!
Существует два основных способа отправки переменных через HTTP-метод GET:
- через строки запроса в URL
- через HTML-формы с method="get"
$_GET через строки запроса URL
Строка запроса — это данные, добавленные в конец URL. В элементе <a> ниже все после знака ? является строкой запроса:
HTML-ссылка с параметрами строки запроса:
<html>
<body>
<a href="demo_phpfile.php?subject=PHP&web=Schoolsw3.com">Тест $GET</a>
</body>
</html>
Строка запроса выше содержит две пары ключ/значение:
- subject=PHP
- web=Schoolsw3.com
В PHP-файле мы можем использовать суперглобальную переменную $_GET для получения значения строки запроса.
Пример
PHP файл demo_phpfile.php:
<html>
<body>
<?php
$subject = htmlspecialchars($_GET['subject']);
$web = htmlspecialchars($_GET['web']);
echo "Изучайте $subject на $web.";
?>
</body>
</html>
Попробуйте сами »
Примечание: Всегда проверяйте и очищайте все данные, собранные из суперглобальных переменных, таких как $_GET, перед их использованием, чтобы предотвратить уязвимости безопасности, такие как XSS-атаки. Функция
htmlspecialchars(), использованная выше, — это один из способов сделать это. Более надежную фильтрацию можно выполнить с помощью функций фильтрации PHP.
$_GET в HTML-формах
HTML-форма отправляет информацию через HTTP-метод GET, если атрибут method формы установлен в "get".
Чтобы продемонстрировать это, начнем с создания простой HTML-формы:
HTML файл:
<html>
<body>
<form action="welcome_get.php" method="GET">
Имя: <input type="text" name="name">
E-mail: <input type="text" name="email">
<input type="submit">
</form>
</body>
</html>
Когда пользователь нажимает кнопку отправки, данные формы отправляются в PHP-файл, указанный в атрибуте action тега <form>.
Поля формы отправляются в PHP-файл с вводом пользователя в виде строк запроса:
welcome_get.php?name=John&email=john@example.com
В PHP-файле мы можем использовать переменную $_GET для получения значений полей ввода.
Пример
PHP код внутри страницы welcome_get.php:
<html>
<body>
Добро пожаловать, <?php echo htmlspecialchars($_GET["name"]); ?><br>
Ваш адрес электронной почты: <?php echo htmlspecialchars($_GET["email"]); ?>
</body>
</html>
Попробуйте сами »
Думайте о БЕЗОПАСНОСТИ при обработке форм и пользовательского ввода!
Примеры выше не содержат тщательной проверки формы, они просто показывают, как вы можете отправлять и получать данные формы. Правильная проверка данных формы важна для защиты от хакеров и спамеров!
Узнайте больше об обработке PHP-форм с учетом безопасности в главе Проверка формы.