首页  编辑  

ThinkPHP中延长当前session超时最简单可靠优雅的方法,不需要修改全局设置

Tags: /PHP/   Date Created:
网络上大部分的关于延长session的方法,都是针对所有session设置的,如果不想修改全局设置,又想延长某个特定session或者当前session的超时,其实最简单的方式时更新一下当前session就可以了。
PHP的session,如果数据有任何变化,那么session会更新为当前时间,那么超时会从当前时刻开始计算!所以我们可以不断在session当中,更新最后一次动作的时间或者随便用个变量随机变化,就可以保持当前session不超时了。
对于AJAX请求方式,可以在AJAX请求的Controller方法里面,类似代码如下:
use think\facade\Session;

if (time() - session('last_access') > 60) {
            session('last_access', time());
            Session::save();
}
你会发现,如果是默认文件名保存session的话,在thinkphp runtime\session目录下,你的session文件会不断更新,文件的时间也会不断更新,这样就不会session超时了,也无需修改全局设置,非常方便。