您好,如果用户未正确注销,我正在尝试想办法更新我的数据库。利用 session.gc_maxlifetime 似乎是正确的方法。当生命周期到期并且垃圾收集器销毁会话时,是否可以调用函数?还有 gc_maxlifetime 如何重置它的计时器?是在某些 $_SESSION 变量更新时吗?还是只是客户要求?
我试过寻找解决方案,但它们都涉及用户交互,例如我设置了一个自定义会话计时器,如果用户在不活动太长时间后与网页交互,“注销”功能就会启动并且会话被破坏。
您好,如果用户未正确注销,我正在尝试想办法更新我的数据库。利用 session.gc_maxlifetime 似乎是正确的方法。当生命周期到期并且垃圾收集器销毁会话时,是否可以调用函数?还有 gc_maxlifetime 如何重置它的计时器?是在某些 $_SESSION 变量更新时吗?还是只是客户要求?
我试过寻找解决方案,但它们都涉及用户交互,例如我设置了一个自定义会话计时器,如果用户在不活动太长时间后与网页交互,“注销”功能就会启动并且会话被破坏。
您可以通过编写自己的会话处理程序并使用session_set_save_handler()
. gc
当需要对会话执行 GC 时,将调用作为参数给出的函数。
请注意,这些函数只能访问序列化的会话数据,并且会话使用的序列化格式与普通的 PHP 序列化方法略有不同。如果您尝试在 GC 过程中读取用户数据,那么这样做不会有太多乐趣。
相反,您可能希望单独记录附加会话 ID 的用户活动,并将不活动和缺少注销作为单独的机制进行跟踪。