Chrome не уничтожает собственный сеанс при закрытии окна

Я столкнулся с неприятной проблемой: хром не уничтожает собственные сеансы при закрытии вкладок или всего браузера хром. Это происходит, если в настройках Chrome выбрана опция «продолжить с того места, где вы остановились». Я хотел бы найти способ убедиться, что Chrome уничтожает сеанс (удаляя файл cookie сеанса) независимо от того, как пользователи настраивают свои индивидуальные настройки Chrome.

Вот пример кода, который я использую для проверки существования сеанса:

<?php 
    session_start(); 
    if ( isset($_SESSION['check'])) echo 'An active session was found.';
    else
    {
        $_SESSION['check'] = TRUE;
        echo 'An inactive session was found and activated.';
    }
?>

Чтобы проверить функциональность браузера, разрушающего сеансы, я открываю этот код в браузере, затем закрываю браузер и снова открываю его. Результат после этого процесса следующий:

Firefox: обнаружен и активирован неактивный сеанс.
Explorer: обнаружен и активирован неактивный сеанс.
Chrome: обнаружен активный сеанс.

Как я могу убедиться, что сеанс правильно уничтожен, когда вкладка или браузер закрыты?


person Nadav    schedule 05.02.2015    source источник


Ответы (1)


Из того, как я интерпретирую RFC 6265, браузеры не обязаны удалять так называемые «сессионными куки» (те, у которых не установлен срок действия) при завершении их процесса.

Поэтому имеет смысл полагаться не на конкретную реализацию, а на спецификацию.

В вашем случае это означает: невозможно сделать то, что вы хотите; вам нужно переосмыслить свое решение.

person zerkms    schedule 05.02.2015