【问题标题】:On every visit, new session (please)?每次访问时,新会话(请)?
【发布时间】:2011-03-27 23:21:25
【问题描述】:

我在一个网站上,我关闭了所有窗口,然后又返回,当然我已经登录了。

我需要让网站做其他事情。当我回去不登录时 - 很快在每次访问时创建一个新会话并一直保持它(没有超时)。

由于我设法在本地 apache 上执行此操作,但它无法在线工作,因此我在执行此操作时应注意哪些事项是否有合理的解释?

谢谢:)

【问题讨论】:

标签: php


【解决方案1】:

制作 cookie 时,请将过期日期设置为过去。它应该允许您在会话中保持登录状态,但是一旦您关闭浏览器,浏览器将清除陈旧 cookie 的 cookie 罐以及您的会话。

【讨论】:

  • Thanx Mark,将 cookie 过期日期设置为纯“0”解决了这个问题。
【解决方案2】:

如果您确实关闭了所有窗口(而不仅仅是所有选项卡!),那么会话 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 - 但这是个坏主意,因为会话永远不会自动清理,并且会慢慢填满驱动器。

【讨论】:

  • Thanx Chao,这非常有帮助。我一直在跟踪这个建议并解决了这个问题。
猜你喜欢
  • 2016-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-07
  • 2014-09-02
  • 2018-09-20
  • 2022-01-18
  • 2014-01-15
相关资源
最近更新 更多