Как вывести ошибку при заполнении формы, после отправки скрипта? Новичок в PHP, гуглил, но не нашёл адекватного решения.
Суть проблемы: Есть файл с формой регистрации, скажем index.php Есть файл обработчик формы, скажем, reg.php В reg.php интегрированы все проверки, например, если какое-то поле пустое, то скрипт останавливается и в переменную кладётся какая-то инструкция для пользователя.
Вопрос: как вывести значение данной переменной на страницу index.php, после обработки файла?
Ведь при обработке формы, юзера кидает на reg.php, если же я после этого делаю редирект обратно на index.php, то переменная как я понял перестаёт существовать.
В общем, нужно чтобы после отправки формы, юзер возвращался на страницу с формой и под не заполненной формой выводился текст.
P.S. без использования JS.

21 Авг 2019 в 06:24
205 +1
0
Ответы
1

Для реализации подобного функционала можно использовать сеансы (sessions) в PHP. При обработке формы в файле reg.php сохраните сообщение об ошибке в сеансе, например, так:

session_start();
if (empty($_POST['username'])) {
$_SESSION['error_message'] = 'Поле "Имя" не заполнено.';
header('Location: index.php');
exit;
}

Затем на странице index.php проверьте наличие ошибки в сеансе и выведите её под формой:

session_start();
if (isset($_SESSION['error_message'])) {
echo '<p style="color: red;">' . $_SESSION['error_message'] . '</p>';
unset($_SESSION['error_message']); // очищаем сообщение об ошибке, чтобы не выводилось повторно
}

Таким образом, после отправки формы и перехода на index.php, сообщение об ошибке будет отображаться под формой.

20 Апр в 13:19
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 83 722 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир