Il existe de nombreuses façons de déterminer si un utilisateur est hors ligne ou en ligne. Voici une logique relativement simple et couramment utilisée.
Idées :
1 : Obtenez d'abord le dernier identifiant de session enregistré de l'utilisateur (apprentissage recommandé : Programmation PHP de l'entrée à la maîtrise)
//这里可以保存到数据库中获取 //假设 $memberSessionId = getMemberSessionId();
Deux : Utilisez le session_id obtenu dans la première étape pour savoir si la session en cours existe
//只要开启了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 // 如果存在,则在线,否则反之
Trois : Si l'utilisateur quitte normalement, supprimez la session en cours
// 将全局SESSION变量数组设置空. $_SESSION = array(); // 如果SESSION数据存储在COOKIE中则删除COOKIE. // Note: 将注销整个SESSION对象, 而不仅仅是SESSION数据! if (isset($_COOKIE[session_name()])) { setcookie(session_name(), '', time()-42000, '/'); } // 最后,注销SEESION. session_destroy();
Quatre, si l'utilisateur ferme directement le navigateur, attendez que la session du serveur soit recyclée
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!