session.cookie_lifetime не работает для Firefox? - PullRequest
2 голосов
/ 03 января 2012

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

Для этого я написал бы следующий код:

ini_set('session.cookie_lifetime', 0);

И он отлично работает в браузерах, таких как Chrome, Safari, IE7 и IE8 , но в случае Firefox, пользователи по-прежнему остаются в системе при закрытии браузера.

Кто-нибудь знает, в чем причина проблемы?

Заранее спасибо ...

1 Ответ

3 голосов
/ 03 января 2012

Значение 0 указывает на «сессионный cookie» - то есть тот, который браузер должен уничтожить, когда «сессия» закончится и браузер закроется.

Тем не менее:

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

Убедитесь, что вы действительно завершили сеанс Firefox при тестировании - закройте все , откройте вкладки и окна и просмотрите список процессов, чтобы убедиться, что экземпляров больше не осталось. Если у вас все еще есть проблема, вы, вероятно, смотрите на какую-то ошибку в Firefox (или, может быть, вы сделали какое-то странное изменение в about:config), и вам нужно обратиться за помощью к Firefox - SuperUser. com было бы лучшим местом для этого. В одном вы можете быть уверены, что если он работает везде, это не проблема для вашего PHP.

...