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();
}
}