Переменная $_REQUEST

Тренажер по PHP для пользователей с начальным уровнем подготовки.

Тренажер PHP

Переменная $_REQUEST — один из суперглобальных массивов в PHP, который объединяет данные из трёх источников: $_GET, $_POST и $_COOKIE. Это удобный инструмент для получения пользовательских данных, но его использование требует осторожности. В этом модуле вы научитесь работать с $_REQUEST: получать значения, проверять их существование, понимать особенности приоритета источников данных и правильно обрабатывать входящую информацию. Вы попрактикуетесь в базовом синтаксисе обращения к элементам массива, исправлении типичных ошибок, предсказании результатов выполнения кода и сборке полноценных скриптов обработки форм. Задания расположены по возрастанию сложности — от простого извлечения значений до комплексной валидации данных.

Список тем

Получение значения из $_REQUEST

id: 39031_task1

Получите значение по ключу 'username' из суперглобального массива $_REQUEST и выведите приветствие пользователю.

Заполните пропуски
<?php
$name = input1S['username'];
echo "Привет, " . input2S;
?>
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Проверка существования ключа

id: 39031_task2

Перед использованием данных из $_REQUEST необходимо проверить, существует ли нужный ключ, чтобы избежать ошибок и предупреждений.

Заполните пропуски
<?php
if (input1S($_REQUEST['email'])) {
    $email = input2S['email'];
    echo "Email: " . input3S;
} else {
    echo "Email не указан";
}
?>
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Исправьте синтаксическую ошибку

id: 39031_task3

В коде допущена ошибка при обращении к $_REQUEST. Найдите строку с ошибкой и исправьте её.

Найдите ошибку и исправьте
<?php
$age = $_REQUEST[age];
echo "Возраст: " . $age;
?>
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Что выведет скрипт?

id: 39031_task4

Представьте, что на страницу пришёл GET-запрос с параметром ?action=delete. Определите, что выведет данный код.

Выберите правильный вариант ответа
<?php
// URL: page.php?action=delete
if (isset($_REQUEST['action'])) {
    echo "Действие: " . $_REQUEST['action'];
}
?>
Сообщения
Проверить
Показать подсказку

Напишите результат выполнения

id: 39031_task5

Форма отправляет POST-запрос с полем city, значение которого 'Moscow'. Напишите, что выведет этот код.

Что должно получиться?
<?php
// POST: city=Moscow
if (isset($_REQUEST['city'])) {
    echo "Город: " . $_REQUEST['city'];
}
?>
Сообщения
Проверить
Показать подсказку

Сопоставьте суперглобальные массивы с источниками данных

id: 39031_task6

Каждый суперглобальный массив получает данные из определённого источника. Расположите правую колонку так, чтобы каждый массив соответствовал своему источнику.

Сопоставьте строки в правой части с соответствующими строками в левой по порядковому номеру
Данные из URL-параметров (query string)
Данные из тела POST-запроса
Данные из cookies браузера
Объединённые данные из GET, POST и COOKIE
$_POST
$_GET
$_REQUEST
$_COOKIE
Сообщения
Проверить
Показать подсказку

Соберите обработчик формы из токенов

id: 39031_task7

Используя токены из банка, заполните пропуски так, чтобы получился рабочий код обработки формы с полями 'login' и 'password'.

Нужно правильно расставить в пропуски предложенные варианты
<?php
if (input1S && input2S) {
    $user = input3S;
    $pass = input4S;
    echo "Логин: " . input5S;
    echo " | Пароль: " . input6S;
}
?>
isset($_REQUEST['login'])
isset($_REQUEST['password'])
$_REQUEST['login']
$_REQUEST['password']
$user
$pass
$_GET['login']
$login
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Соберите скрипт обработки параметра search

id: 39031_task8

Соберите код в правильном порядке, чтобы получился скрипт, который проверяет наличие параметра 'search' в запросе, выводит его значение, если он есть, или сообщение "Поиск не задан", если параметра нет. Есть лишние строки с ошибками.

Перетяните в правильном порядке строки из одного блока в другой
<?php
if (isset($_REQUEST['search'])) {
    echo "Запрос: " . $_REQUEST['search'];
} else {
    echo "Поиск не задан";
}
?>
if (isset($REQUEST['search'])) {
echo "Запрос: " . $_REQUEST[search]
    echo "Запрос: " $_REQUEST['search'];
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Исправьте ошибку в валидации

id: 39031_task9

Код проверяет, передан ли параметр 'age' и является ли он числом. Найдите и исправьте строку с логической ошибкой.

Найдите ошибку и исправьте
<?php
if (isset($_REQUEST['age'])) {
    if (is_numeric($_REQUEST['name'])) {
        echo "Возраст указан корректно";
    } else {
        echo "Возраст должен быть числом";
    }
}
?>
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Значение по умолчанию

id: 39031_task10

Часто требуется использовать значение по умолчанию, если параметр не передан. Заполните пропуски, чтобы переменная $lang получила значение из $_REQUEST['lang'], если оно есть, или 'en' по умолчанию.

Заполните пропуски
<?php
$lang = input1S(input2S['lang']) ? input3S['lang'] : 'en';
echo "Язык: " . $lang;
?>
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Приоритет источников данных

id: 39031_task11

Одновременно приходят данные: 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'];
?>
Сообщения
Проверить
Показать подсказку

Пустое значение параметра

id: 39031_task12

Передан GET-параметр ?status= (без значения). Определите, что выведет код.

Выберите правильный вариант ответа
<?php
// URL: page.php?status=
if (isset($_REQUEST['status'])) {
    if (empty($_REQUEST['status'])) {
        echo "Статус пустой";
    } else {
        echo "Статус: " . $_REQUEST['status'];
    }
}
?>
Сообщения
Проверить
Показать подсказку
НайтиКурс.Ру