Это мой первый пост. Я полагаю, что просмотрел некоторые другие форумы, чтобы узнать, был ли уже задан мой вопрос, но я все еще остаюсь, почесывая голову. Я знаю, что есть много сообщений о сессиях с истекшим сроком, но я думаю, с точки зрения конкретного сценария, я думаю.
Пользователь заходит на панель инструментов и переходит на страницу. Как долго он простаивает, затем сборщик мусора делает свое дело и очищает сеанс.
Теперь, если пользователь возвращается к панели инструментов и щелкает, чтобы перейти на другую страницу, я бы хотел, чтобы пользователь вернулся на страницу индекса - эффективно выйдите из системы.
У меня есть страница выхода, на которую пользователь может перейти, когда решит выйти. Я записываю некоторые данные в базу данных, удаляю сеанс и перенаправляю обратно на домашнюю страницу.
Я хотел бы сначала проверить, действительно ли сеанс жив. Если нет, уничтожьте его и перенаправьте на домашнюю страницу. В противном случае удалите его.
Но мой вопрос: если сборщик мусора уже очистил сеанс, нужно ли мне его уничтожать?
<?php
session_start( );
if( !isset( $_SESSION['session'] ) ) {
session_destroy( );
header( "Location: /index.php" );
}
else {
// ... log the data I need in the database ...
$_SESSION['session'] = array( );
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( );
header( "Location: /index.php" );
}
?>