【问题标题】:PHP Session Keep AlivePHP 会话保持活跃
【发布时间】:2013-12-06 17:41:13
【问题描述】:

一旦我的用户登录,我会为他们创建一个 PHP 会话并将用户 ID 存储在会话中。但有时用户的会话超时并且时间并不是真正可预测的,因为它发生在不同的时间。用户有时会在网站上做一些事情,这需要一些时间才能按保存,此时会话超时。

我有一个 jQuery keepAlive 函数,它每隔 x 秒调用一个文件名 keepAlive.php。但不确定要在 php 文件中放入什么代码来保持 php 会话处于活动状态。有任何想法吗?我应该只做 start_session() 吗?

谢谢

【问题讨论】:

  • 是的,并将您的 $_SESSION 超全局定义为自身。 - $_SESSION = $_SESSION;
  • 你确定 session_start() 在每一页的顶部被调用吗? (第一行)

标签: php session timeout keep-alive


【解决方案1】:

缺乏可预测性与您的垃圾收集设置有关(详细说明请参见http://www.php.net/manual/en/ref.session.php)。但是旧会话的终止是随机发生的,然后会终止每个超过特定时间的会话。

要启动会话,您只需要 start_session()

但是如果您需要让事情持续更长时间,那么您可能应该更改您的 php.ini 以延长在他们被杀死之前它开始的时间。 (session.gc_maxlifetime)

【讨论】:

  • +1:但有几点需要注意 - 会话时间戳(在默认处理程序中)在会话关闭时更新 - 因此只有 session_start 代码必须干净地结束。此外,可能将会话 cookie 生命周期配置为小于错误命名的 gc_maxlifetime,从而使会话无法访问。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-09
相关资源
最近更新 更多