php验证用户是否在线_php如何判断用户是否在线

判断用户离线在线的方法有很多,这里和大家说一个比较简单和常用的逻辑。

7bfa05164a52346d4a1eaee3e0706d6c.png

思路:

一:首先获得用户最后一次保存的session_id(推荐学习:PHP编程从入门到精通)//这里可以保存到数据库中获取

//假设

$memberSessionId = getMemberSessionId();

二:用第一步获得的session_id 去查找当前session是否存在//只要开启了session_start() ; 那么每个用户只要打开你的网站都将分配一个session_id

/* 这段代码可以获取到你服务器上的所有session

$handle = opendir(session_save_path());

while (false !== ($file = readdir($handle))) {

if(!in_array($file, array('.', '..', 'session_dir')))

echo "$file
";

}

closedir($handle);

*/

//这一步要获取到你在服务器上和用户匹配的session

// 假设

$serverSession == $memberSessionId // 如果存在,则在线,否则反之

三:如果用户正常退出,删除当前session// 将全局SESSION变量数组设置空.

$_SESSION = array();

// 如果SESSION数据存储在COOKIE中则删除COOKIE.

// Note: 将注销整个SESSION对象, 而不仅仅是SESSION数据!

if (isset($_COOKIE[session_name()])) {

setcookie(session_name(), '', time()-42000, '/');

}

// 最后,注销SEESION.

session_destroy();

四, 如果用户直接关闭浏览器,则等服务器session回收

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值