社交网络 - 管理员禁用其他用户会话或其他一些选项

时间:2011-07-05 17:02:51

标签: php session social-networking

我正在建立自己的社交网站和

以下是案例

如果用户发送垃圾邮件或做一些非道德的事情,我可以禁止他使用管理员选项。为了禁止该用户,我正在更新他在数据库中的记录,因此他下次无法登录该网站。但除此之外,我想要禁用他当前的会话,不应该允许任何其他操作。有人可以告诉我如何禁用用户会话?我的意思是“管理员”用户禁用“用户”会话(一个用户其他用户会话)

或任何其他想法?

非常感谢你的帮助

Kiran

4 个答案:

答案 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中做什么,我想