удалить сессию когда пользователь перешел на другую страничку
Я храню ошибки при регистрации/входе в сессии, и мне надо, чтобы когда пользователь ушел на другую страницу, чтобы сессия удалилась
Ответы (2 шт):
Автор решения: Максим Степанов
→ Ссылка
// destroy session:
$_SESSION = array();
session_destroy();
//Но вам же, наверное, не всю сессию, а только ошибки? тогда как-то так:
$_SESSION['errors'] = null;
Автор решения: Null Pointer Exception
→ Ссылка
Удаление сессии:https://www.php.net/manual/ru/function.session-destroy.php
Создаём destroy.php:
//Очищаем сессию.
$_SESSION = array();
// Если требуется уничтожить сессию, также необходимо удалить сессионные cookie.
// Это уничтожит сессию, а не только её данные!
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}
session_destroy();
У клиента:
window.addEventListener("unload", function() {
navigator.sendBeacon("/destroy.php","");
});