Как объясняется в документации :
Не сбрасывает глобальные переменные, связанные с сеансом, и не сбрасывает cookie сеанса. Чтобы снова использовать переменные сеанса, необходимо вызвать session_start ().
Чтобы полностью завершить сеанс, например, выйти из системы, идентификатор сеанса также должен быть не установлен. Если файл cookie используется для распространения идентификатора сеанса (поведение по умолчанию), файл cookie сеанса должен быть удален. Для этого можно использовать setcookie ().
Также приводится пример того, как это сделать:
<?php
// Initialize the session.
// If you are using session_name("something"), don't forget it now!
session_start();
// Unset all of the session variables.
$_SESSION = array();
// If it's desired to kill the session, also delete the session cookie.
// Note: This will destroy the session, and not just the session data!
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}
// Finally, destroy the session.
session_destroy();
?>
Достаточно просто очистить массив, чтобы выйти из системы; у них все еще будет тот же идентификатор сеанса, но $_SESSION
будет пустым, поэтому $_SESSION['logged']
и $_SESSION['username']
не будут существовать