php - 如何杀死一个/所有 php session ?

标签 php session authentication

我有一个非常基本的 php session 登录脚本。我想强制注销某个用户或强制注销所有用户。

我如何读取我网站上的所有 session ,并销毁部分或所有 session ?

最佳答案

您可以尝试强制 PHP 删除所有 session

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

这迫使 PHP 将所有 session 视为具有 0 秒的生命周期,并且有 100% 的可能性被清理。

缺点是,无论哪个不幸的用户先运行它,都会在 PHP 进行清理时暂停很长时间,尤其是在需要处理大量 session 文件的情况下。

对于一个特定的用户,您必须向您的 session 处理程序添加一些代码:

 if ($_SESSION['username'] == 'user to delete') {
     session_destroy();
 }

PHP 的垃圾收集器是不可控的,所以你不能给它参数,比如“删除除用户 X 之外的所有 session ”。它严格查看 session 文件上的最后修改/最后访问时间戳,并将其与 max_lifetime 设置进行比较。它实际上并不处理 session 数据。

关于php - 如何杀死一个/所有 php session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5193744/

相关文章:

authentication - 如何使用 Windows 身份验证和自定义角色提供程序设置 OWIN

php - 空白 "DOMNodeList"通过 Xpath 读取 XML

php - 与 PHP 的永久链接

session - 如何在nodejs中保存session参数。 nowjs 示例

托管到服务器时,php session 变量值为空

c# - ASP.NET - 在 session 变量中存储类 - 它是如何工作的(内存)?

php - 在 PHP 的类中包含文件

php - 如何编写MYSQL查询用户层次关系?

api - RESTful API 中身份验证 token 的存储位置

java - 单点登录无法在 Jboss 上运行