繁体   English   中英

PHP - 如何注销所有登录用户?

[英]PHP - How to logout all logged in users?

我想要一种使用 Php 强制注销所有登录用户的方法

session 校验码如下:

<?php
include "dbConn.php";
session_start();
if (!isset($_SESSION['login_user'])) {
   header("location:Login.php");
   die();
}
?>

所以它取决于 session 变量“ $_SESSION['login_user'] ”,那么有没有办法为所有登录用户取消设置这个变量?

问候

如我的评论中所述,您也可以更改您正在测试的 session 密钥。 我建议让它在全球范围内可用,并为其分配一个版本号,当你想注销所有人时,你会增加该版本号。

这是一个完整版本,其中还包括完全销毁您可能想要或可能不想要的会话数据。 此代码尚未经过测试,但我相当有信心它大部分是准确的。

此外,这不会“将所有人注销”,而是会在所有人下次访问该站点时将其注销。 对于大多数人来说,这是同一件事,但某些网站可能需要前者,我认为其他评论解决了这个问题。

// This should be in a globally available file, and all
// session checks should rely on this
const SESSION_USER_KEY = 'login_user_v1';

session_start();
if (!isset($_SESSION[SESSION_USER_KEY])) {

    // Only needed if you potentially have additional code before the redirect
    $_SESSION = [];

    // Optionally kill the cookie, see https://www.php.net/manual/en/function.session-destroy.php#example-4744
    $params = session_get_cookie_params();
    setcookie(session_name(), '', time() - 42000,
        $params["path"], $params["domain"],
        $params["secure"], $params["httponly"]
    );

    session_destroy()
    header("location:Login.php");
    die();
}

暂无
暂无

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

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