gpt4 book ai didi

PHP:删除给定ID的另一个 session

转载 作者:可可西里 更新时间:2023-10-31 23:07:31 25 4
gpt4 key购买 nike

我有以下问题:

  1. 用户 X 使用 session_id 1000 登录 PC1。离开但忘记注销。
  2. 用户 X 使用 session_id 1001 登录 PC2。
  3. 在 session 1000 超时之前,用户 Y 以用户 X 的身份访问 PC1, session ID 为 1000。

通过这种方式,两个用户在不同的 PC 和不同的 session ID 中以同一用户的身份获得访问权限。我想做的是每次用户登录(完成)时存储新的 session_id,并删除以前存储的 session_id。但是我不知道如何在给定 id 的情况下删除或修改 session 文件,而不更改当前 session 。

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

  1. 用户 X 使用 session_id 1000 登录 PC1。脚本将 1000 存储为 last_session_id。离开但忘记注销。
  2. 同一用户登录 PC2,session_id 为 10001。脚本获取 last_session_id (1000) 并删除该 session 信息;然后将 1001 存储为新的 last_session_id。
  3. 用户 Y 使用 session_id 1000 访问 PC1,但由于信息已删除,无法以 X 身份访问。

*session_id(old_session)* 能否正常工作?或者该函数只是重命名当前 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();

它非常适合我。

关于PHP:删除给定ID的另一个 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13446899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com