Обработка POST-запросов

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

Тренажер PHP

В этом модуле мы изучим основы работы с формами в PHP и обработку POST-запросов. Вы научитесь получать данные, отправленные пользователем, проверять метод запроса и безопасно выводить информацию. POST-запросы используются для отправки конфиденциальных данных (паролей), больших объемов текста или загрузки файлов, так как данные не отображаются в адресной строке браузера.

Вам предстоит выполнить ряд заданий: от различения методов GET и POST до написания полноценных сценариев обработки форм. Будьте внимательны к синтаксису суперглобальных массивов и правилам написания ключей. Удачи!

Список тем

1. GET или POST?

id: 39042_task_post_01

Распределите характеристики по методам передачи данных. Вспомните, какой метод используется для передачи ссылок, а какой — для отправки паролей.

Перетяните элементы в соответствующие блоки
Метод GET
Метод POST
Данные видны в адресной строке
Подходит для передачи паролей
Ограничение на объем данных (около 2Кб)
Данные передаются в теле запроса
Используется для загрузки файлов
Можно сохранить ссылку с параметрами
Сообщения
Проверить
Показать подсказку

2. Получение данных из формы

id: 39042_task_post_02

Заполните пропуски, чтобы получить значение поля ввода с именем login из суперглобального массива POST и вывести его.

Заполните пропуски
// HTML: <input type="text" name="login">
$user_login = input1S[input2S];
echo "Вы вошли как: " . input3S;
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

3. Проверка метода запроса

id: 39042_task_post_03

Соберите условие, которое проверяет, была ли форма отправлена методом POST. Используйте данные из банка.

Нужно правильно расставить в пропуски предложенные варианты
if (input1S[input2S] === input3S) {
    echo "Форма отправлена!";
}
$_SERVER
'REQUEST_METHOD'
'POST'
$_POST
'GET'
'METHOD'
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

4. Исправьте ошибки в обработчике

id: 39042_task_post_04

В коде допущены синтаксические ошибки при работе с массивом POST. Найдите и исправьте их. Обратите внимание на написание суперглобальной переменной и использование ключей.

Найдите ошибку и исправьте
<?php
// Получаем email из формы
$email = $POST['user_email'];
// Получаем сообщение
$message = $_POST[message];
echo $email . ": " . $message;
?>
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

5. Ключи массива POST

id: 39042_task_post_05

Посмотрите на HTML-код формы и PHP-обработчик. Что выведет этот код при отправке формы?

Выберите правильный вариант ответа
HTML:
<form method="POST">
  <input type="text" name="city" id="user_city" value="Paris">
</form>
PHP:
echo $_POST['user_city'] ?? 'Ошибка';
Сообщения
Проверить
Показать подсказку

6. Элементы формы и PHP

id: 39042_task_post_06

Сопоставьте HTML-атрибуты формы с тем, как они интерпретируются или используются в PHP.

Сопоставьте строки в правой(нижней) части с соответствующими строками в левой(верхней) по порядковому номеру
Определяет суперглобальный массив ($_GET или $_POST)
Становится ключом (индексом) в массиве
Становится значением элемента массива
Указывает, какому PHP-файлу передать данные
name="username"
action="handler.php"
method="POST"
value="Ivan"
Сообщения
Проверить
Показать подсказку

7. Безопасный вывод данных

id: 39042_task_post_07

Соберите скрипт, который принимает имя пользователя и безопасно выводит его, защищаясь от XSS-атак (внедрения HTML-тегов).

Перетяните в правильном порядке строки из одного блока в другой
$name = $_POST['name'];
$safe_name = htmlspecialchars($name);
echo "Привет, " . $safe_name;
echo "Привет, " . $name;
$safe_name = strip_tags();
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

8. Логика обработки формы

id: 39042_task_post_08

Восстановите правильный порядок блока кода, который проверяет, была ли нажата кнопка отправки, и если да, то обрабатывает данные. Если нет — выводит сообщение.

Расставьте строки в правильном порядке
    echo "Пожалуйста, отправьте форму.";
}
    $data = $_POST['text'];
} else {
    echo "Обработано: " . $data;
if (isset($_POST['submit_btn'])) {
Сообщения
Проверить
Показать подсказку

9. Калькулятор суммы

id: 39042_task_post_09

Представьте, что пользователь заполнил форму числами 5 и 10. Посчитайте, что выведет скрипт.

Что должно получиться?
// Пользователь отправил: a=5, b=10
$a = $_POST['a'];
$b = $_POST['b'];
$sum = $a + $b;
echo "Total: " . $sum;
Сообщения
Проверить
Показать подсказку

PHP: запуск кода в браузере

id: 39042_compiler
🐘
Запустить тренажёр (PHP)
НайтиКурс.Ру