session.gc_maxlifetime何时开始计数

时间:2012-10-30 19:20:46

标签: php session

在每次页面加载时,我运行session_start()以恢复当前会话。 session.gc_maxlifetime何时开始计算?第一次调用session_start()并设置会话的cookie?或者计时器是否每{?1}}重启一次?

在此时间线中将session_start()设置为大约24分钟时,会话数据应被垃圾回收

session.gc_maxlifetime

如果计时器在第一页加载 1. 12:00:00 First page load, session_start(), session cookie created 2. 12:10:00 page load, session_start() 3. 12:26:00 page load, session_start() 4. 12:55:00 page load, session_start() 时启动,那么我认为它会在加载3上进行垃圾收集。但如果它重置每session_start(),那么它将在加载4之前收集。 / p>

我希望它是后者,因为我可以每隔几分钟做一次javascript心跳来调用运行session_start()的页面。

如果是前者,session_start()从创建会话cookie开始计算,我需要销毁/重新创建或重新生成_id以重置计数?

1 个答案:

答案 0 :(得分:2)

它是从最后一次session_start()调用OR / AND写入的最后一次。我的猜测是后者,因为这将改变PHP垃圾收集器用于确定是否需要删除的“最后修改”时间戳。在这种情况下,它从最后一个脚本开始计数,使用session_start()或通过调用session_ write_ close()在脚本中间显式完成。

P.S。这将使“心跳”变得简单(在一行中):http://prototypejs.org/api/ajax/periodicalUpdater