Heim  >  Artikel  >  php教程  >  php如何判断用户在线还是离线

php如何判断用户在线还是离线

WBOY
WBOYOriginal
2016-06-07 11:43:361917Durchsuche

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

一:首先获得用户最后一次保存的session_id
//这里可以保存到数据库中获取
//假设
$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回收


不明白的联系
邮箱: admin@chajiandaquan.com
网址: http://chajiandaquan.com
本文链接: http://chajiandaquan.com/article/20.html

AD:真正免费,域名+虚机+企业邮箱=0元

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn