tp5自定义处理session过期时间

[php] 2024-09-17 圈点220

摘要:综合一下各大技术大件处理session的思维,整理了session资料,下面说明一下在tp5中对session过期时间的处理方法默认的session过期时间其实挺麻烦,具体翻了一下手册,也特意在网上查了一些资料发现设置session时间确实是个很大的“坑”,可以算得上是一个session bug了;session充满了很多不确定的因素。

默认的session过期时间其实挺麻烦,具体翻了一下手册,也特意在网上查了一些资料发现设置session时间确实是个很大的“坑”,可以算得上是一个session bug了;session充满了很多不确定的因素。


综合一下各大技术大件处理session的思维,整理了session资料,下面说明一下在tp5中对session过期时间的处理方法


session过期处理思路介绍,以登录为例:

1,设置一个全局变量为session过期时间,假设为$session_expire=3600;

2,在登录的时候,设置一个全局变量为登录时的时间(也就是session开始时间);假设为session("sesstion_start_time",time());

3,在需要判断session是否过期的地方,用当前时间减去上一步中设置的开始时间; 即time() - session("sesstion_start_time"),用它和$session_expire比较,即可得出session是否过期。

4,在需要判断session是否过期的地方,如果没有过期就需要更新一下开始时间,即:session("sesstion_start_time",time());即可实现以最后一次操作为开始时间;



session判断是否过期的示例代码:



1,在入口位置或者是全局配置文件中设置全局变量

$session_expire=3600;


2,在登录成功后的地方设置session开始时间:

session("sesstion_start_time",time())


3,在所有需要判断session是否过期的地方进行如下判断:

if (time() - session("sesstion_start_time") <= $session_expire){

session("sesstion_start_time",time());

}else{

echo "登录状态已过期,请重新登录";

}


session  

感谢反馈,已提交成功,审核后即会显示