Энциклопедия PHP: $ GET
В языке программирования PHP суперглобальный массив $_GET
используется для получения данных, передаваемых через URL с помощью метода GET. Это один из способов передачи информации между страницами веб-приложения.
Основные принципы работы
Метод GET передаёт данные через строку запроса (query string) в URL. Такие параметры видны в адресной строке браузера. Синтаксис передачи данных следующий:
https://example.com/page.php?key1=value1&key2=value2
Здесь:
key1
иkey2
– имена передаваемых параметров,value1
иvalue2
– их значения.
PHP автоматически заполняет массив $_GET
, используя переданные параметры. Например, если запрос выглядит так:
https://example.com/page.php?name=John&age=25
То доступ к параметрам можно получить следующим образом:
<?php
$name = $_GET['name']; // "John"
$age = $_GET['age']; // "25"
?>
Особенности использования
- Простота – можно легко передавать данные между страницами без необходимости создания форм.
- Прозрачность – параметры запроса видны в адресной строке, что удобно для закладок и шаринга ссылок.
- Ограниченность – браузеры и серверы накладывают ограничения на длину URL (обычно около 2000 символов).
- Безопасность – данные легко модифицировать вручную, поэтому важно фильтровать входящие параметры.
Пример использования в форме
Один из типичных случаев использования $_GET
– передача параметров из HTML-формы:
<form action="search.php" method="get">
<input type="text" name="query" placeholder="Введите запрос">
<input type="submit" value="Поиск">
</form>
Если пользователь введёт «PHP» и нажмёт кнопку «Поиск», браузер отправит запрос:
https://example.com/search.php?query=PHP
В файле search.php
можно обработать запрос так:
<?php
if (isset($_GET['query'])) {
$query = htmlspecialchars($_GET['query']); // Очистка от HTML-тегов
echo "Вы искали: " . $query;
} else {
echo "Введите поисковый запрос.";
}
?>
Безопасность при работе с $_GET
Так как параметры в $_GET
легко подделать, важно соблюдать меры безопасности:
- Фильтрация и валидация – проверяйте и очищайте входные данные.
- Использование
htmlspecialchars()
– предотвращает XSS-атаки. - Использование
intval()
,floatval()
для чисел – защищает от SQL-инъекций. - Подготовленные SQL-запросы (Prepared Statements) – защищают от SQL-инъекций при работе с БД.
Пример безопасной обработки числа:
<?php
if (isset($_GET['id'])) {
$id = intval($_GET['id']); // Преобразует в число
echo "ID пользователя: " . $id;
}
?>
Заключение
$_GET
– удобный инструмент для передачи данных через URL, но его использование требует осторожности. Важно помнить о безопасности и ограничениях метода GET, особенно при обработке пользовательского ввода.