В этом блоке заданий мы познакомимся с одним из важнейших инструментов PHP для работы с данными, которые приходят от пользователя — суперглобальной переменной $_GET. Она позволяет "читать" информацию прямо из адресной строки браузера. Это основной способ передать на сервер простые данные, например, ID страницы, поисковый запрос или параметры для сортировки.
Вы научитесь получать эти данные, правильно и безопасно их обрабатывать, а также избегать распространенных ошибок. Задания построены от самых основ до более сложных практических ситуаций. Вы будете заполнять пропуски в коде, исправлять ошибки и предсказывать результат выполнения скриптов, чтобы закрепить понимание того, как работает $_GET-запросы в веб-разработке. Этот навык — фундамент для создания динамических сайтов.
- Модуль 1: Основы синтаксиса PHP
- Модуль 2: Переменные и типы данных
- Модуль 3: Операторы
- Модуль 4: Условные конструкции
- Модуль 5: Циклы
- Модуль 6: Массивы
- Индексированные массивы.
- Ассоциативные массивы.
- Многомерные массивы.
- Добавление элементов в массив.
- Удаление элементов из массива.
- Функция count().
- Функция array_push() и array_pop().
- Функция array_shift() и array_unshift().
- Функция array_merge().
- Функция array_slice().
- Функция array_splice().
- Функция in_array().
- Функция array_search().
- Функция array_keys() и array_values().
- Функция array_unique().
- Функция array_reverse().
- Сортировка: sort(), rsort().
- Сортировка: asort(), arsort().
- Сортировка: ksort(), krsort().
- Функция array_map().
- Функция array_filter().
- Функция array_reduce().
- Функция array_walk().
- Функция array_column().
- Деструктуризация массивов.
- Модуль 7: Функции
- Объявление функций.
- Вызов функций.
- Параметры функций.
- Возврат значений return.
- Значения параметров по умолчанию.
- Передача по значению.
- Передача по ссылке.
- Переменное количество аргументов.
- Оператор распаковки ....
- Типизация параметров.
- Типизация возвращаемых значений.
- Nullable типы.
- Union типы (PHP 8).
- Именованные аргументы (PHP 8).
- Анонимные функции.
- Стрелочные функции.
- Замыкания и use.
- Рекурсивные функции.
- Глобальные переменные в функциях.
- Статические переменные в функциях.
- Модуль 8: Работа со строками
- Одинарные и двойные кавычки.
- Экранирование символов.
- Heredoc и Nowdoc синтаксис.
- Функция strlen().
- Функция substr().
- Функция str_replace().
- Функция strpos() и strrpos().
- Функция explode() и implode().
- Функция trim(), ltrim(), rtrim().
- Функция strtolower() и strtoupper().
- Функция ucfirst() и ucwords().
- Функция str_repeat().
- Модуль 9: Суперглобальные переменные
- Переменная $_GET.
- Переменная $_POST.
- Переменная $_REQUEST.
- Модуль 10: Работа с формами
- Модуль 11: Работа с файлами
- Модуль 12: Дата и время
- Модуль 13: Регулярные выражения
- Модуль 14: Сессии и Cookie
- Модуль 15: Include и Require
- Модуль 16: Объектно-ориентированное программирование
- Модуль 17: Пространства имен
- Модуль 18: Обработка ошибок и исключений
- Модуль 19: Работа с JSON и XML
- Модуль 20: Работа с базами данных MySQLi
- Модуль 21: PDO - PHP Data Objects
- Модуль 22: Composer и зависимости
- Модуль 23: cURL и HTTP запросы
- Модуль 24: REST API
- Модуль 25: Безопасность
- Модуль 26: Генераторы и итераторы
- Модуль 27: Reflection API
- Модуль 28: Работа с изображениями
- Модуль 29: Отправка email
- Модуль 30: Паттерны проектирования
- Модуль 31: Тестирование
- Модуль 32: Продвинутые возможности PHP 8+
Простой доступ к GET-параметру
Представьте, что на ваш скрипт пришел запрос по URL `index.php?name=Alex`. Ваша задача — получить значение параметра `name` из адресной строки. Заполните пропуски в коде, чтобы он вывел имя пользователя на экран.
<?php
// URL: /index.php?name=Alex
$userName = input1S[input2S];
echo "Привет, " . $userName;
?>Что будет, если параметр отсутствует?
Проанализируйте код и URL-адрес. Пользователь зашел на страницу `profile.php` без каких-либо дополнительных параметров в адресной строке. Что в итоге выведет этот скрипт? Выберите наиболее точный вариант.
<?php
// URL: /profile.php
echo "Добро пожаловать, " . $_GET['user'];
?>Исправьте ошибку в синтаксисе
В коде допущена одна очень распространенная синтаксическая ошибка при доступе к элементу массива $_GET. URL запроса: `page.php?id=101`. Найдите строку с ошибкой и исправьте ее, чтобы скрипт заработал корректно.
<?php// URL: /page.php?id=101 $pageId = $_GET[id]; echo "Вы находитесь на странице с ID: " . $pageId;?>Безопасная проверка наличия параметра
Чтобы избежать предупреждений (warnings), которые мы видели в одном из прошлых заданий, хорошей практикой является проверка существования параметра перед его использованием. Соберите из 'банка' правильную конструкцию для проверки наличия параметра `page` в URL.
<?php
// URL: /catalog.php?page=2
if (input1S(input2S[input3S])) {
$currentPage = $_GET['page'];
echo "Текущая страница: " . $currentPage;
} else {
echo "Номер страницы не указан.";
}
?>Предскажите результат
Дан скрипт, который получает два параметра из URL: `product_id` и `category`. Внимательно посмотрите на код и на URL, с которым к нему обратились. Что именно будет выведено на экран в результате работы этого скрипта? Введите точный результат в поле ответа.
<?php
// URL: /shop.php?product_id=734&category=laptops
echo $_GET['product_id'] . ", category: " . $_GET['category'];
?>Соберите скрипт приветствия
Соберите из фрагментов работающий PHP-скрипт. Скрипт должен проверять, передан ли параметр `user` в URL. Если да — он выводит "Привет, [имя пользователя]!". Если нет — выводит "Привет, Гость!". Некоторые фрагменты являются лишними и не должны использоваться.
} else {echo "Привет, " . $_GET['user'] . "!";echo "Привет, Гость!";<?phpif (isset($_GET['user'])) {?>}$user = $_GET['user'];if (empty($_GET['user'])) {Неправильная суперглобальная переменная
Программист хотел написать скрипт для обработки данных из URL, но по ошибке использовал не ту суперглобальную переменную. В описании указано, что данные приходят через GET-запрос. Найдите и исправьте ошибку в коде.
<?php// Данные передаются через URL: /api.php?action=get_users $action = $_POST['action']; if ($action == 'get_users') { echo "Запрос на получение пользователей...";}?>Значение по умолчанию с помощью оператора `??`
В PHP 7 появился удобный оператор объединения с null (`??`), который позволяет задать значение по умолчанию, если переменная не установлена или равна `null`. Посмотрите на код и URL. Что выведет скрипт?
<?php
// URL: /index.php
$language = $_GET['lang'] ?? 'en';
echo "Выбранный язык: " . $language;
?>