[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 "登录状态已过期,请重新登录";
}