unset $_SESSION var появляется после обновления

Я пытаюсь использовать сеанс для отображения возможной ошибки MSG. В моем файле auth_id.php я проверил правильность введенного идентификатора и пароля, отправленных из файла auth_form.php, если нет, то для $_SESSION['fail'] будет установлено сообщение об ошибке.

Вверху моего файла auth_id.php я проверил, был ли установлен $_SESSION['fail'], если да, отобразил ошибку msg, а затем сбросил $_SESSION['fail'].

Но это не работает так, как я ожидал. Функция unset удаляет 'fail' из $ _SESSION в файле auth_form.php, но она появляется после обновления страницы. Поэтому я всегда получаю сообщение об ошибке после первой установки.

Я не уверен, что вызывает эту проблему, у кого-нибудь есть идеи, что я сделал не так?

Спасибо за помощь! auth_form.php:

<?php
session_start();
if (isset($_SESSION['fail'])) {
    print($_SESSION['fail']);
    unset($_SESSION['fail']);
}
?>

auth_id.php:

session_start();
$mode = $_SESSION['mode'];
if ($res->num_rows == 1) {
    // unset($_SESSION['fail']);
    $row = $res->fetch_assoc();
    $db_password = $row['password'];
    if ($password == $db_password) {
        if ($mode == 'delete') {
            $delete = "DELETE FROM guestbook WHERE ID = $ID";
            $mysqli->query($delete);
            $_SESSION['delete'] = $row['name'] . "\'s comment has been deleted.";
            header("Location: list.php");
            die();
        }

    $_SESSION['name'] = $row['name'];
    $_SESSION['email'] = $row['email'];
    $_SESSION['url'] = $row['url'];
    $_SESSION['comments'] = $row['comments'];

    header("Location: form.php");
    die();

} else {
    $_SESSION['fail'] = "Authentication failed.";
    header("Location: auth_form.php");
    die();
}

}

0 ответов

Другие вопросы по тегам