我已使用带有以下代码的img标签跟踪了在线用户会话.
<img src="http://www.somedomain.com/track/login.php" alt="" title="" width="1" height="1" />
使用上面的代码,我创建了一个管理部分来显示在线用户.
现在,由于某种原因.我必须从管理部分结束在线用户的会话.
谁能帮我一个.
注意:
在用户页面中,用户会话使用
if(authenticated) {
$_SESSION['username']=name;
$_SESSION['id']=id;
}
解决方法:
我将以以下方式实现此目的:使用文件存储会话,将这些文件存储在您具有读/写访问权限的某个特定位置,为它们指定一个可预测的名称(例如,用户名上的md5)以及何时需要结束用户会话,只需删除属于该用户的文件.
//get current logged in user user - this way we get it as a GET or POST parameter - NOT safe, because the user can modify this parameter - you could get it from the login form for example
$current_user = md5($_REQUEST["user"]);
// start user's sessions like this
ini_set('session.save_handler', 'files');
//load the session of the current user
$current_user = md5($_REQUEST["user"]);
//set the current session id to the one corresponding to current user
session_id($current_user);
session_save_path("/tmp/sessions/");
session_start();
在您的管理部分中,获取用户名作为参数,在其上计算md5,然后删除该用户的会话:
$current_user = md5($_REQUEST["user"]);
unlink("/tmp/sessions/$current_user");
此代码可能不适合您使用,但是这是遵循的好方法