PHP、JS会话超时机制

参考:https://www.laruence.com/2012/01/10/2469.html

方法一、PHP后端Session

  1. 登录时记录过期时间到Session中
  2. 在入口文件中判断是否过期,过期则退出,否则更新过期时间
// 入口文件判断
if (isset($_SESSION['expiretime'])) {
    if ($_SESSION['expiretime'] < time()) {
        unset($_SESSION['expiretime']);
        header('Location: index.php?m=user&f=logout'); // 登出
        exit(0);
    } else {
        $_SESSION['expiretime'] = time() + 3600;// 更新时间戳
    }
}

方法二、JS前端定时器

// 判断当前页面是否是登录页面,登录页面不需超时机制
if (window.location.search.indexOf('m=user&f=login') === -1) {
    var timeOut = {
        lastTime: new Date().getTime(),// 最后操作时间
        currentTime: new Date().getTime(),// 当前时间
        expire: 12*60*60*1000,// 超时时间,12小时
        interval: null // 定时器
    }
            
    // 鼠标移动事件
    $(document).mousemove(function(){
        timeOut.lastTime = new Date().getTime();
    });

    // 定时器 间隔1秒检测是否长时间未操作页面
    timeOut.interval = window.setInterval(function(){
        timeOut.currentTime = new Date().getTime();
        console.log("超时:"+(timeOut.currentTime - timeOut.lastTime));
        if (timeOut.currentTime - timeOut.lastTime > timeOut.expire) { //判断是否超时
            alert('登录超时,请重新登录');
            window.location.href = "index.php?m=user&f=logout";// 退出登录
        }
    }, 1000);
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值