我正在建立自己的社交网站和
以下是案例
如果用户发送垃圾邮件或做一些非道德的事情,我可以禁止他使用管理员选项。为了禁止该用户,我正在更新他在数据库中的记录,因此他下次无法登录该网站。但除此之外,我想要禁用他当前的会话,不应该允许任何其他操作。有人可以告诉我如何禁用用户会话?我的意思是“管理员”用户禁用“用户”会话(一个用户其他用户会话)
或任何其他想法?
非常感谢你的帮助
Kiran
答案 0 :(得分:1)
如果您以某种系统的方式跟踪用户的会话,例如在数据库中,您可以只搜索所有用户的打开会话并删除服务器端会话数据。这样,下次重新加载页面时,用户将不再被视为“登录”。
您可能必须为此工作定义自己的会话处理程序(或使用现有框架)。否则,默认情况下,您的磁盘上只有大量session*
个文件,您可能无法轻易找出属于哪个用户的文件。
答案 1 :(得分:1)
如果您没有将会话存储在数据库中,则需要获取用户的会话ID并删除相应的会话文件,以便其会话被终止。要做到这一点,你需要在登录时将用户会话的ID存储在数据库中。假设一个相对标准的基于文件的会话设置,这样的事情可能会起到作用:
$user_session_id = '...';
$file = glob(session_save_path() . '/*' . $user_session_id . '*');
unlink($file[0]);
只要'banned'标志设置为true,就会在您的管理页面中执行此操作,然后核对用户的会话。这会自动将其记录下来。在下次登录时,您可以显示“您被禁止”的消息。
答案 2 :(得分:0)
在允许垃圾邮件发送者访问任何页面之前,请使用用户的会话数据检查数据库中是否有禁用标志,如果是,则销毁会话并将其路由到不受保护的页面(登录或回家)。
唯一的问题是您在每个受保护的页面上进行数据库查找。
答案 3 :(得分:-1)
如果您使用用户名跟踪用户会话,那么您可以通过会话禁止他。当然你知道在db中做什么,我想