• 技术文章 >后端开发 >PHP问题

    php如何判断用户是否在线

    (*-*)浩(*-*)浩2019-09-20 09:55:48原创1385
    判断用户离线在线的方法有很多,这里和大家说一个比较简单和常用的逻辑。

    思路:

    一:首先获得用户最后一次保存的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<br />";
    }
    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回收

    以上就是php如何判断用户是否在线的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:php
    上一篇:php如何破解禁止跨域访问 下一篇:php如何判断文件类型
    线上培训班

    相关文章推荐

    • php如何做伪静态处理• php如何自动刷新页面• php如何在页面之间传递变量的值• php如何预防sql注入

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网