在会话自动销毁之前调用自定义方法

时间:2015-12-02 14:15:10

标签: php session yii

有没有办法在会话被auto / mannual销毁之前调用自定义方法?

我的问题是,我正在捕获数据库中的用户注销时间。当用户手动注销时(通过调用注销方法),它工作正常,但是当超时后用户的会话被自动销毁时,我无法捕获注销时间。

对此提出建议。

2 个答案:

答案 0 :(得分:1)

在php中你可以实现 SessionHandlerInterface 并在 destroy() gc()上使用自定义代码(参见评论),更多信息在这里 - http://php.net/manual/en/class.sessionhandlerinterface.php

在YII中,您可以设置custom session handler

答案 1 :(得分:1)

是的,这是可能的。 See this website for a in-depth tutorial
使用session_set_save_handler()PHP doc),您可以为GC(垃圾收集)周期添加自己的函数。这样,您可以确定哪些会话将被该垃圾收集周期销毁,并使用当前时间戳手动更新数据库中的那些记录。

如果您通过调用默认的GC处理程序来结束您的功能,那么您基本上可以插入自己的逻辑位。

相关问题