Валидация текстовых полей

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

Тренажер PHP

Этот модуль посвящен валидации и обработке текстовых данных из форм в PHP. Вы научитесь проверять заполненность полей, очищать строки от лишних пробелов и вредоносного кода, проверять длину текста и соответствие формату (например, email).

В заданиях вам предстоит работать с функциями empty(), trim(), htmlspecialchars(), а также с регулярными выражениями и фильтрами.

Мы начнем с простых проверок и закончим построением комплексной логики валидации. Будьте внимательны к синтаксису и логическому порядку действий. Удачи!

Список тем

1. Проверка заполненности поля

id: 39043_task1

Необходимо проверить, что поле имени пользователя **не** является пустым. Заполните пропуск правильной функцией и оператором отрицания.

Заполните пропуски
$username = $_POST['user'];

// Если имя НЕ пустое, сохраняем его
if (input1S(input2S($username))) {
    saveUser($username);
} else {
    echo "Введите имя!";
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

2. Очистка пробелов

id: 39043_task2

Пользователь часто случайно ставит пробелы в начале или конце ввода. Определите, что выведет код после обработки строки функцией `trim`.

Выберите правильный вариант ответа
$input = "  PHP Rulez  ";
$clean = trim($input);
echo "Script: " . $clean . "!";
Сообщения
Проверить
Показать подсказку

3. Длина строки после валидации

id: 39043_task3

Частая задача: проверить длину пароля, предварительно убрав случайные пробелы. Напишите число, которое выведет этот код.

Что должно получиться?
$password = " 123456 ";
$real_password = trim($password);
echo strlen($real_password);
Сообщения
Проверить
Показать подсказку

4. Очистка vs Проверка

id: 39043_task4

Распределите функции PHP на две группы: те, что изменяют данные (Санитизация/Очистка), и те, что просто проверяют состояние или формат (Валидация).

Перетяните элементы в соответствующие блоки
Санитизация (Изменяет данные)
Валидация (Только проверка)
trim()
is_numeric()
htmlspecialchars()
strlen()
stripslashes()
preg_match()
empty()
Сообщения
Проверить
Показать подсказку

5. Алгоритм проверки комментария

id: 39043_task5

Соберите код обработки комментария в правильном порядке: получение данных -> очистка от HTML тегов -> проверка длины -> сохранение или ошибка.

Перетяните в правильном порядке строки из одного блока в другой
$comment = $_POST['text'];
$safe_comment = htmlspecialchars($comment);
if (strlen($safe_comment) > 10) {
    saveComment($safe_comment);
} else {
    echo "Комментарий слишком короткий";
}
$comment = htmlspecialchars($_POST['text']]);
if (strlen($comment) > 10) {
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

6. Валидация Email

id: 39043_task6

Используйте встроенную функцию фильтрации для проверки корректности Email. Заполните пропуски.

Нужно правильно расставить в пропуски предложенные варианты
$email = "user@example.com";

// Проверяем формат
if (input1S($email, input2S) === input3S) {
    echo "Некорректный Email";
} else {
    echo "Email принят";
}
filter_var
FILTER_VALIDATE_EMAIL
false
true
check_email
FILTER_SANITIZE_EMAIL
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

7. Ошибки в проверке возраста

id: 39043_task7

Найдите и исправьте две ошибки в коде. Первая — синтаксическая (пропущен символ), вторая — логическая (неверный оператор сравнения для проверки совершеннолетия). Условие: доступ только с 18 лет включительно.

Найдите ошибку и исправьте
<?php
$age = 17;
if ($age > 18) {
    echo "Доступ разрешен"
} else {
    echo "Вам рано";
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

8. Проверка логина регулярным выражением

id: 39043_task8

Необходимо разрешить логин, состоящий только из латинских букв и цифр. Допишите регулярное выражение и функцию проверки.

Заполните пропуски
$login = "User2024";

// Функция возвращает 1, если шаблон совпал
if (input1S(input2S, $login)) {
    echo "Логин корректен";
} else {
    echo "Только буквы и цифры!";
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

9. Фильтры PHP и их назначение

id: 39043_task9

Сопоставьте константы фильтров с их действием. Обратите внимание на разницу между VALIDATE (проверка) и SANITIZE (очистка).

Сопоставьте строки в правой(нижней) части с соответствующими строками в левой(верхней) по порядковому номеру
Проверяет, является ли строка Email-адресом
Удаляет из строки все символы, кроме цифр, плюса и минуса
Проверяет, является ли значение целым числом
Удаляет HTML-теги и кодирует спецсимволы
FILTER_SANITIZE_SPECIAL_CHARS
FILTER_VALIDATE_INT
FILTER_SANITIZE_NUMBER_INT
FILTER_VALIDATE_EMAIL
Сообщения
Проверить
Показать подсказку

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

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