如何杀死一个/所有php会话?
我有一个非常基本的php会话登录脚本。我想强制注销某个用户或强制注销所有用户。
如何读取对我的网站进行的所有会话,并销毁部分或全部会话?
我有一个非常基本的php会话登录脚本。我想强制注销某个用户或强制注销所有用户。
如何读取对我的网站进行的所有会话,并销毁部分或全部会话?
您可以尝试强制PHP删除所有会话,方法是执行
ini_set('session.gc_max_lifetime', 0);
ini_set('session.gc_probability', 1);
ini_set('session.gc_divisor', 1);
这迫使 PHP 将所有会话视为具有 0 秒的生存期,并且有 100% 的概率被清理。
缺点是,无论哪个不幸的用户首先运行这个,当PHP进行清理时,都会有很长的暂停时间,特别是如果有很多会话文件要经过。
对于一个特定的用户,您必须向会话处理程序添加一些代码:
if ($_SESSION['username'] == 'user to delete') {
session_destroy();
}
PHP的垃圾回收器是不可控的,所以你不能给它参数,比如“删除除用户X之外的所有会话”。它严格查看会话文件上上次修改/上次访问的时间戳,并将其与max_lifetime设置进行比较。它实际上不处理会话数据。