Перейти к содержанию

Энциклопедия 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, особенно при обработке пользовательского ввода.

Другие статьи о PHP