【问题标题】:PHP - Session expire date is set, but session is still cleared on browser restartPHP - 会话过期日期已设置,但浏览器重新启动时会话仍被清除
【发布时间】:2013-06-23 14:41:13
【问题描述】:

我知道有类似我的问题,但没有人回答我的问题:

在我的 .htaccess 文件中,我有几条代码规则确保会话(登录用户)自动启动并持续一周:

#Set PHP rules
php_value session.gc_maxlifetime 604800
php_value session.gc_probability 0
php_value session.cookie_lifetime 604800
php_value session.name "DSWLogin"
php_value session.auto_start 1

它有效,会话自动设置为名称“DSWLogin”并持续一周。但是,当我的浏览器重新启动时,会话及其内容会被重置,因此会自动将用户注销。

所以在浏览器重启之前。 Before the browser restarts http://www.projectomicron.org/Images/Before%20Browser%20Restart.png

浏览器重启后:

After the browser restarts http://www.projectomicron.org/Images/After%20Browser%20Restart.png

【问题讨论】:

  • 其他浏览器呢?
  • 我们只能在这里猜测,因为从提供的信息中无法 100% 知道是什么原因造成的。我建议检查的事情是,在浏览器中启用了隐私浏览模式,清除浏览器关闭选项或类似的隐私信息。不管你怎么剪,这似乎是浏览器问题而不是代码问题。
  • 如果您遵循 cookie 的规范,您可以看到这可能就是这种情况,所以我想知道这如何限定问题,因为这是记录在案的行为。客户端可以完全控制 cookie 的过期时间,您通过服务器告知的内容只是对客户端的建议。
  • @Anigel 好吧,我使用的是谷歌浏览器,而谷歌浏览器(隐私浏览除外)甚至没有提供在浏览器关闭时清除隐私信息的选项。
  • 不正确。 Chrome 确实可以选择在退出时自动清除 cookie。高级设置 > 内容设置 > Cookies > 选择仅保留本地数据,直到我退出浏览器

标签: php session cookies browser restart


【解决方案1】:

好吧,它并没有完全回答我的问题,但 @sectus "What about other browser?" 提供了(出乎意料地)缺少的链接。

原来是我的浏览器,谷歌浏览器重置了我的会话,在 FireFox 中它运行良好......

【讨论】:

  • 虽然谷歌浏览器设置为在浏览器重新启动后记住 cookie,但它不会...有人知道为什么吗?
  • 您的问题包含的事实信息太少,无法准确说明这里发生了什么。我建议您使用网络嗅探器解决问题。即使您的答案也只是描述性的,它不依赖于任何事实,而不仅仅是工作/不工作,这不是一个非常合格的描述,更像是一个笼统的描述。
猜你喜欢
  • 2013-06-22
  • 2015-08-12
  • 2012-05-26
  • 2013-07-18
  • 1970-01-01
  • 2011-04-21
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
相关资源
最近更新 更多