我有一个类User,它有一些普通的方法和一个传递$pdo对象的构造函数。还有一个名为isLogged((的方法,它只是检查是否设置了必要的会话变量。
但如果我只想检查用户是否已登录,而不想建立数据库连接,该怎么办?
// I need to check if user is logged here but it requires including db.php
require 'includes/db.php';
$user = new User($pdo);
if (!$user->isLogged()) {
header('Location: index.php');
exit;
}
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// POST validation
// ...
// That is the place where DB connection should be made
}
当用户登录时,您需要设置一个将用户标记为已登录的会话变量,然后在需要时检查该变量
function private setLoggedIn() {
session_start();
$_SESSION['isLoggedIn'] = true;
}
function public checkLoggedIn() {
if ($_SESSION['isLoggedIn']) {
return true;
} else {
return false;
}
}