在每个页面加载我运行session_start()以恢复当前会话.什么时候session.gc_maxlifetime开始计数?第一次session_start()被调用并且会话的cookie被设置了?或者计时器是否每次重启session_start()?
随着session.gc_maxlifetime一套约24分钟的时候,在这个时间表的会话数据应该被垃圾收集
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()
Run Code Online (Sandbox Code Playgroud)
如果计时器在第一页加载时启动,session_start()那么我预计它将在加载3上进行垃圾收集.但如果它每次都重置session_start(),那么它将在加载4之前收集.
我希望它是后者,因为那时我可以每隔几分钟做一次javascript心跳来调用运行的页面session_start().
如果它是前者,session.gc_maxlifetime从创建会话cookie开始计数我需要销毁/重新创建或重新生成_id来重置计数?
它来自最后一次 session_start() 调用或/和最后一次写入。我的猜测是后者,因为这会改变 PHP 垃圾收集器用来确定是否需要删除的“最后修改”时间戳。在这种情况下,它从最后一个使用 session_start() 的脚本开始计数,或者通过调用 session_write_close() 显式地在中间脚本中结束。
PS这将使“心跳”变得美好而简单(一行):http://prototypejs.org/api/ajax/periodicalUpdater
| 归档时间: |
|
| 查看次数: |
402 次 |
| 最近记录: |