php session_destroy清除除运行代码的会话之外的所有会话

时间:2015-09-23 17:26:08

标签: php session

我一直在寻找一种方法来记录我的所有用户,除了激活此命令的用户?如果有办法做到这一点...我有下面的代码,但我甚至不确定它是否100%有效,因为它说"尝试"

ini_set('session.gc_max_lifetime', 0);
ini_set('session.gc_probability', 1);
ini_set('session.gc_divisor', 1);

所以我想清除每个会话的所有会话(session_destroy),除了查看页面的会话?这是可能的..

1 个答案:

答案 0 :(得分:0)

我认为在这种情况下更正确的方法 - 创建自定义代码以注销所有用户。例如,我可以建议这个解决方案:

  1. 您可以在数据库特殊参数last_users_logout_time中存储,当用户登录时,然后存储在$ _SESSION数组变量user_login_time中。在每个页面中,您都可以查看user_login_time< last_users_logout_timeuser_login_time为空,然后注销用户。非常简单。对于忽略指定的用户,您可以将参数except_logout_user_id添加到数据库

  2. 更多“正确的方式” - 将$ _SESSION数据存储在数据库中,只运行DELETE查询所有session表,但指定的用户除外