false, 'message' => 'User not found']; } if ($users[$username] === $password) { $_SESSION['username'] = $username; $_SESSION['logged_in'] = true; return ['success' => true, 'message' => 'Login successful']; } else { return ['success' => false, 'message' => 'Invalid password']; } } public function logoutUser() { session_destroy(); return ['success' => true, 'message' => 'Logged out successfully']; } public function isLoggedIn() { return isset($_SESSION['logged_in']) && $_SESSION['logged_in'] === true; } public function getCurrentUser() { if ($this->isLoggedIn()) { return $_SESSION['username']; } return null; } public function requireLogin() { if (!$this->isLoggedIn()) { header('Location: index.html'); exit; } } } // Handle AJAX requests if ($_SERVER['REQUEST_METHOD'] === 'POST') { header('Content-Type: application/json'); $userManager = new UserManager(); $action = $_POST['action'] ?? ''; switch ($action) { case 'login': $username = $_POST['username'] ?? ''; $password = $_POST['password'] ?? ''; echo json_encode($userManager->loginUser($username, $password)); break; case 'logout': echo json_encode($userManager->logoutUser()); break; case 'check_login': echo json_encode([ 'logged_in' => $userManager->isLoggedIn(), 'username' => $userManager->getCurrentUser() ]); break; default: echo json_encode(['success' => false, 'message' => 'Invalid action']); } exit; } ?>