Как убедиться, что сессия уничтожена, когда браузер закрыт в Zend - PullRequest
1 голос
/ 20 января 2012

У меня есть приложение, разработанное в Zend Framework. Проблема в том, что сеансы не уничтожаются при закрытии окна браузера. Есть идеи?

Ответы [ 5 ]

1 голос
/ 20 января 2012

Обычно сеансы заканчиваются, когда пользовательский агент завершает работу, например, когда конечный пользователь выходит из программы веб-браузера.Тем не менее, ваше приложение может предоставлять возможность продления пользовательских сеансов за пределы жизненного цикла клиентской программы за счет использования постоянных файлов cookie.

Если вы не используете Zend_Session::rememberMe(), оно должно быть уничтожено после того, как вы закроете всеокна браузера.

1 голос
/ 20 января 2012

Используйте событие onunload, чтобы отправить на сервер запрос ajax, который уничтожит сеанс

См .: onunload

0 голосов
/ 02 февраля 2012

У меня возникла та же проблема, когда я использовал опцию Zend Запомнить меня, и я не нашел решения, но имел хорошую идею - хранить сеансы с использованием обработчика Zend DB и удалять старые куки, написав простой запрос для удаления сеансов с истекшим сроком (еслиэто задача cron, это хорошее решение).

Дополнительную информацию об обработчике базы данных zend session можно найти здесь:

http://framework.zend.com/manual/en/zend.session.savehandler.dbtable.html

0 голосов
/ 20 января 2012

Вы должны установить для session.cookie_lifetime значение 0 в своем php.ini или в своем коде.

The value 0 means "until the browser is closed."

http://www.php.net/manual/en/session.configuration.php#ini.session.cookie-lifetime

Код:

session_set_cookie_params (0);
0 голосов
/ 20 января 2012

Переменная сеанса не будет уничтожена до тех пор, пока не истечет срок ее действия или вы не удалите файлы cookie браузера.Вы можете увидеть эту же проблему, когда мы закрываем браузер перед выходом из системы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...