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