[英]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.