【问题标题】:session.cookie_lifetime not working for Firefox?session.cookie_lifetime 不适用于 Firefox?
【发布时间】:2012-01-03 10:26:54
【问题描述】:
在我的 Zend 应用程序中,我试图让我们的经过身份验证的用户在关闭时自动注销他们的浏览器。
为此,我将编写以下代码:
ini_set('session.cookie_lifetime', 0);
它在 Chrome、Safari、IE7 和 IE8 等浏览器上运行良好,但如果是 Firefox,用户在关闭浏览器时仍保持登录状态。 em>
有谁知道是什么导致了问题?
提前谢谢...
【问题讨论】:
标签:
php
zend-framework
firefox
【解决方案1】:
0 的值表示“会话 cookie”——即当“会话”结束并关闭浏览器时浏览器应该销毁的。
但是:
- 不同的浏览器对“会话”的确切含义有不同的解释 - 有些会在您关闭选项卡时销毁这些 cookie,有些会在您关闭窗口时销毁,有些不会销毁 cookie,直到浏览器的所有实例都已完成关闭 - 所有窗口中的所有选项卡。
- 由于cookies是由客户端存储和传输的,它们完全是客户端的责任。您不应仅依靠 cookie 来控制用户是否具有有效登录,因为它们非常容易被欺骗,您还应该实现某种活动超时。
确保您在测试时实际上已经结束了 Firefox 会话 - 关闭所有打开的选项卡和窗口,并查看进程列表以确保没有剩余实例。如果您仍然遇到问题,您可能正在查看 Firefox 中的某种错误(或者您可能在 about:config 中进行了一些奇怪的更改)并且您需要寻求 Firefox 特定的帮助 - SuperUser.com 将是一个更好的地方。您可以相当确定的一件事是,如果它在其他任何地方都有效,那么您的 PHP 就没有问题。