Php 使用会话id取消设置specefic会话

Php 使用会话id取消设置specefic会话,php,session,sessionid,Php,Session,Sessionid,我是该网站的管理员。我想取消设置一个特定的会话,我知道它的会话id 用户只是这样声明会话 session_id("usernumber"); session_start(); 假设用户A的用户号为“123” 我想销毁用户A的所有值,用户A在将session_id()设置为session_id(“123”)后将不会重新生成session_id() 如何取消仅针对用户A的销毁设置?据我所知,使用默认会话处理程序执行此操作的唯一受支持方法是使用会话id(“usernumber”)模拟用户然后删除这些

我是该网站的管理员。我想取消设置一个特定的会话,我知道它的会话id

用户只是这样声明会话

session_id("usernumber");
session_start();
假设用户A的用户号为“123” 我想销毁用户A的所有值,用户A在将session_id()设置为session_id(“123”)后将不会重新生成session_id()


如何取消仅针对用户A的销毁设置?

据我所知,使用默认会话处理程序执行此操作的唯一受支持方法是使用
会话id(“usernumber”)模拟用户然后删除这些值

您也可以,这将使这一切非常简单,但您需要编写自己的会话处理代码


顺便说一句,会话ID应该是一个你猜不到的长随机字符串。使用
123
意味着任何匿名访问者都可以使用任何用户凭据轻松登录。

您可以尝试获取会话保存路径()(在此目录中存储会话文件)。
使用默认会话名称时,文件名类似于sess_jgimlf5edugvdtlaisumq0ham5,其中jgimlf5edugvdtlaisumq0ham5是用户会话id,因此除非您没有编辑这些文件的权限,否则可以取消此文件的链接

没有对会话处理程序进行反向工程

<?php

session_id($_GET['killsid']);
session_start();
session_destroy() || die "failed to kill";


快速查看文档会发现:用户登录的方式是什么?或者它只是用会话处理程序打开的站点?这条评论可以帮助你:这条很好。这正是我想要的,这样你们就可以把其他人踢出这个系统。行了!公共函数drop_session($session_id){unlink(session_save_path()./sess_.$session_id)}这应该是可以接受的答案!它不需要启动会话。简单明了<代码>+1
工作正常。尽管如此,@Hardik Sondagar编写的代码更适合安全实现。
$session_id_to_destroy = 'nill2if998vhplq9f3pj08vjb1';
// 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();