'error', 'message' => 'Unauthorized', ], JSON_UNESCAPED_UNICODE); exit; } function attemptAdminLogin(string $username, string $password): bool { startAdminSession(); $userOk = hash_equals(ADMIN_USERNAME, $username); $passOk = strlen($password) === strlen(ADMIN_PASSWORD) && hash_equals(ADMIN_PASSWORD, $password); if ($userOk && $passOk) { session_regenerate_id(true); $_SESSION['staff_logged_in'] = true; $_SESSION['staff_username'] = ADMIN_USERNAME; return true; } return false; } function adminLogout(): void { startAdminSession(); $_SESSION = []; if (ini_get('session.use_cookies')) { $params = session_get_cookie_params(); setcookie(session_name(), '', time() - 42000, $params['path'], $params['domain'], $params['secure'], $params['httponly']); } session_destroy(); }