PHP:根据ID删除另一个会话

我有以下问题:

>用户X在PC1中登录,其session_id为1000.离开但忘记了注销.
>用户X在PC2中登录,其session_id为1001.
>在会话1000超时之前,用户Y在PC1中以用户X的身份获得访问,其session_id为1000.

这样,两个用户就可以以同一用户的身份在不同的PC和不同的会话ID中进行访问.我想做的是每次用户登录(完成)时都存储新的session_id,并删除以前存储的session_id.但是我不知道如何在给定ID的情况下删除或修改会话文件,而不更改当前会话.

我的意思是,我想执行以下操作:

>用户X在PC1中以session_id 1000登录.脚本将1000存储为last_session_id.离开但忘了注销.
>在PC2中使用同一用户登录,其session_id为10001.脚本获取last_session_id(1000)并删除该会话信息.然后将1001存储为新的last_session_id.
>用户Y转到PC1,其s​​ession_id为1000,但由于该信息已删除,因此无法作为X获得访问权限.

* session_id(old_session)*是否可以正常工作?还是该函数只是重命名当前会话ID,但保留值?

提前致谢.

解决方法:

我找到了这个

$session_id_to_destroy = $sessionid;
// 1. commit session if it's started.
if (session_id()) {
    session_commit();
}

// 2. store current session id
session_start();
$current_session_id = session_id();
session_commit();

// 3. hijack then destroy session specified.
session_id($session_id_to_destroy);
session_start();
session_destroy();
session_commit();

// 4. restore current session id. If don't restore it, your current session will refer to the session you just destroyed!
session_id($current_session_id);
session_start();
session_commit();

它对我来说非常有效.

上一篇:借助xxl-sso实现SSO


下一篇:php-我们何时何地使用session_id()