繁体   English   中英

php session_destroy全部清除所有会话,除了运行代码的会话

[英]php session_destroy all clear all sessions except the one running the code

我一直在寻找一种方法来注销所有用户,除了激活该命令的用户? 如果有办法做到这一点...我在下面有以下代码,但我什至不确定它是否100%有效,因为它说“ try”

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

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

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

  1. 您可以将特殊参数last_users_logout_time存储在数据库中,并在用户登录时将其存储在$ _SESSION数组变量user_login_time 并且在每个页面中,您可以检查user_login_time < last_users_logout_timeuser_login_time是否为null,然后注销用户。 很简单。 对于忽略指定的用户,您可以将参数except_logout_user_id添加到数据库中

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM