Переменная $_REQUEST — один из суперглобальных массивов в PHP, который объединяет данные из трёх источников: $_GET, $_POST и $_COOKIE. Это удобный инструмент для получения пользовательских данных, но его использование требует осторожности. В этом модуле вы научитесь работать с $_REQUEST: получать значения, проверять их существование, понимать особенности приоритета источников данных и правильно обрабатывать входящую информацию. Вы попрактикуетесь в базовом синтаксисе обращения к элементам массива, исправлении типичных ошибок, предсказании результатов выполнения кода и сборке полноценных скриптов обработки форм. Задания расположены по возрастанию сложности — от простого извлечения значений до комплексной валидации данных.
- Модуль 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+
Получение значения из $_REQUEST
Получите значение по ключу 'username' из суперглобального массива $_REQUEST и выведите приветствие пользователю.
<?php
$name = input1S['username'];
echo "Привет, " . input2S;
?>Проверка существования ключа
Перед использованием данных из $_REQUEST необходимо проверить, существует ли нужный ключ, чтобы избежать ошибок и предупреждений.
<?php
if (input1S($_REQUEST['email'])) {
$email = input2S['email'];
echo "Email: " . input3S;
} else {
echo "Email не указан";
}
?>Исправьте синтаксическую ошибку
В коде допущена ошибка при обращении к $_REQUEST. Найдите строку с ошибкой и исправьте её.
<?php$age = $_REQUEST[age];echo "Возраст: " . $age;?>Что выведет скрипт?
Представьте, что на страницу пришёл GET-запрос с параметром ?action=delete. Определите, что выведет данный код.
<?php
// URL: page.php?action=delete
if (isset($_REQUEST['action'])) {
echo "Действие: " . $_REQUEST['action'];
}
?>Напишите результат выполнения
Форма отправляет POST-запрос с полем city, значение которого 'Moscow'. Напишите, что выведет этот код.
<?php
// POST: city=Moscow
if (isset($_REQUEST['city'])) {
echo "Город: " . $_REQUEST['city'];
}
?>Сопоставьте суперглобальные массивы с источниками данных
Каждый суперглобальный массив получает данные из определённого источника. Расположите правую колонку так, чтобы каждый массив соответствовал своему источнику.
$_POST$_GET$_REQUEST$_COOKIEСоберите обработчик формы из токенов
Используя токены из банка, заполните пропуски так, чтобы получился рабочий код обработки формы с полями 'login' и 'password'.
<?php
if (input1S && input2S) {
$user = input3S;
$pass = input4S;
echo "Логин: " . input5S;
echo " | Пароль: " . input6S;
}
?>Соберите скрипт обработки параметра search
Соберите код в правильном порядке, чтобы получился скрипт, который проверяет наличие параметра 'search' в запросе, выводит его значение, если он есть, или сообщение "Поиск не задан", если параметра нет. Есть лишние строки с ошибками.
<?phpif (isset($_REQUEST['search'])) { echo "Запрос: " . $_REQUEST['search'];} else { echo "Поиск не задан";}?>if (isset($REQUEST['search'])) {echo "Запрос: " . $_REQUEST[search] echo "Запрос: " $_REQUEST['search'];Исправьте ошибку в валидации
Код проверяет, передан ли параметр 'age' и является ли он числом. Найдите и исправьте строку с логической ошибкой.
<?phpif (isset($_REQUEST['age'])) { if (is_numeric($_REQUEST['name'])) { echo "Возраст указан корректно"; } else { echo "Возраст должен быть числом"; }}?>Значение по умолчанию
Часто требуется использовать значение по умолчанию, если параметр не передан. Заполните пропуски, чтобы переменная $lang получила значение из $_REQUEST['lang'], если оно есть, или 'en' по умолчанию.
<?php
$lang = input1S(input2S['lang']) ? input3S['lang'] : 'en';
echo "Язык: " . $lang;
?>Приоритет источников данных
Одновременно приходят данные: GET-параметр ?color=red, POST-поле color=blue и cookie color=green. При стандартной конфигурации PHP (приоритет: GET, POST, COOKIE) напишите, что выведет код.
<?php
// GET: ?color=red
// POST: color=blue
// COOKIE: color=green
// request_order = "GPC"
echo $_REQUEST['color'];
?>Пустое значение параметра
Передан GET-параметр ?status= (без значения). Определите, что выведет код.
<?php
// URL: page.php?status=
if (isset($_REQUEST['status'])) {
if (empty($_REQUEST['status'])) {
echo "Статус пустой";
} else {
echo "Статус: " . $_REQUEST['status'];
}
}
?>