Чтобы уничтожить сеанс, необходимо выполнить следующие шаги:
- удалить данные сессии
- сессию недействительной ID
Для этого I «D использовать это:
session_start();
// resets the session data for the rest of the runtime
$_SESSION = array();
// sends as Set-Cookie to invalidate the session cookie
if (isset($_COOKIE[session_name()])) {
$params = session_get_cookie_params();
setcookie(session_name(), '', 1, $params['path'], $params['domain'], $params['secure'], isset($params['httponly']));
}
session_destroy();
И, чтобы быть уверенным, что идентификатор сеанса является недействительным, вы должны разрешить только идентификаторы сессий, которые были инициированы вашим сценарием. Так установить флаг и проверить, если он установлен:
session_start();
if (!isset($_SESSION['CREATED'])) {
// invalidate old session data and ID
session_regenerate_id(true);
$_SESSION['CREATED'] = time();
}
Кроме того, вы можете использовать эту метку времени, чтобы поменять идентификатор сеанса периодически, чтобы уменьшить срок службы:
if (time() - $_SESSION['CREATED'] > ini_get('session.gc_maxlifetime')) {
session_regenerate_id(true);
$_SESSION['CREATED'] = time();
}
Посмотрите по адресу://stackoverflow.com/questions/10648565/destroying-php-session/10662060#10662060 – Brett