在PHP中 - 如何扩展会话?

时间:2013-08-09 13:20:25

标签: php

所有

抱歉 - 这是一个非常简单的问题,肯定已经回答了1000次,但我找不到明确,准确的解释。

创建会话时,该会话将在到期前持续预定的时间(例如,30分钟)。

但是 - 如果用户继续与您的站点进行交互 - 您不希望会话在首次创建会话后30分钟到期。相反,您希望在 最后一次用户互动后30分钟过期。

所以 - 我的问题 - 完全 扩展会话? (也就是说,“重置”30分钟的时钟?)

(通过“使用”,我的意思是从一个页面导航到另一个页面,或触发AJAX请求)。

例如,如果每5分钟,您调用一个执行session_start()的脚本?

或者,如果您修改会话变量?例如,$_SESSION['last_touched'] = time();

或者,如果用户只是在服务器上调用资源? (例如,加载“transparent.gif”)

长话短说 - 我想确保会话不会在用户实际使用网站时 到期,所以我想确切知道哪些操作/ functions延长会话的生命周期。

请注意,我 询问以下任何问题:

  1. 如何设置LONG时间段的超时时间,或更改默认超时?
  2. 当用户未与网站交互时,如何防止会话过期?
  3. 提前致谢!

3 个答案:

答案 0 :(得分:1)

成功调用session_start()将重置会话生存期。

答案 1 :(得分:1)

每次调用session_start()都会创建或扩展会话。

最后一次通话后保持多长时间由session.gc_maxlifetime变量确定

答案 2 :(得分:1)

会话超时在php环境变量中定义(查找session.gc_maxlifetime)。