2011-03-27 64 views
1

林在一个网站上,我关闭所有的窗户,我回去了,当然我登录。每次访问,新会话(请)?

我需要的是网站做的,否则。当我回去时不要登录 - 在每次访问中立即创建一个新的会话并始终保持它(不超时)。

有什么事情,我应该注意我这样做,因为我设法做到这一点的地方阿帕奇当一个合乎逻辑的解释,但它不联机工作?

并感谢:)

+0

Similar questions:http://stackoverflow.com/questions/959655/destroy-session-on-window-close, http://stackoverflow.com/search?q=php%20session%20browser%20close – Nazariy 2011-03-27 23:30:59

回答

2

当你做饼干,设置在过去的到期日期。它应该允许您保持会话登录状态,但是一旦您关闭了浏览器,浏览器就会清除过时的cookie和会话的cookie jar。

+0

Thanx标记,将cookie过期日期设置为纯'0'即可解决此问题。 – Xfile 2011-03-28 19:52:33

0

如果你确实关闭所有窗口(不只是所有的标签!),那么会话cookie应该被遗忘 - 一个新的浏览器窗口会现场应无会话cookie传递,提示PHP创建新的会话。如果您的网站是不是总是这样,那么它可能是使用session.cookie_lifetime 0以外,使得PHP创建一个永久性的Cookie,而不是一个会话cookie。

PHP也有每次运行时摧毁旧的会话,为了从已经有一段时间没有被使用的会话中回收空间的一些机会。在php.ini中session.*性质决定哪些会话得到清理(session.gc_maxlifetime)和频率(session.gc_probabilitysession.gc_divisor)。如果您希望会话时间更长,请将gc_maxlifetime设置为更高的值。如果你希望他们永远有效,且设置gc_probability 0 - 但是这是一个坏主意,因为会议将永远不会被自动清除,并且会慢慢填满驱动器。

+0

Thanx赵,这很有帮助。我一直在寻找这个建议,并且解决了这个问题。 – Xfile 2011-03-28 19:56:21