@vovkka

Как правильно организовать хранение ошибок в сессии?

Добрый день. При обработке форм на разных страницах, копятся ошибки в массиве $errors. Так же при успешной регистрации и тп копятся сообщения в массиве $successMessage.
Вопрос заключается в том, как правильно сохранять ошибки в сессию для последующего вывода на этой же странице или на других при редиректе. Сейчас сделал так :

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (empty($_POST["name"])) {
        $errors[] = "Заполните имя!";
    }

    if (empty($_POST["age"])) {
        $errors[] = "Заполните возраст!";
    }

    $_SESSION["errors_forms"] = $errors;

    if (count($errors) === 0) {
      $successMessage[] = "Форма успешно отправленна!";
      $_SESSION["success_forms"] = $successMessage;
      header("Location: obr_form.php");
      exit();
    }
}


Как бы сделали вы? Всем добра!
  • Вопрос задан
  • 69 просмотров
Пригласить эксперта
Ответы на вопрос 2
By_Engine
@By_Engine
$errs = [];

if(isset($_SESSION['errors_form'])){
$errs = $_SESSION['errors_form'];
unset($_SESSION['errors_form']);
}
Ответ написан
Комментировать
@Arik
Дальше одной переадресации нет смысла хранить, как вариант можно очищать записи когда выводите на экран. Был опыт с хранением
<?php 
$_SESSION['alerts'] = [
    [
    'type' => 'success',
    'message' => 'Форма отправлена',
    'namespace' => 'form2',
    ],
];
?>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы