"Username and password are required"]); exit; } // Validate username format: allow only letters, numbers, underscores, dashes, and spaces. if (!preg_match('/^[A-Za-z0-9_\- ]+$/', $username)) { echo json_encode(["error" => "Invalid username format. Only letters, numbers, underscores, dashes, and spaces are allowed."]); exit; } // Authenticate user $userRole = authenticate($username, $password); if ($userRole !== false) { // Regenerate session ID to mitigate session fixation attacks session_regenerate_id(true); $_SESSION["authenticated"] = true; $_SESSION["username"] = $username; $_SESSION["isAdmin"] = ($userRole === "1"); // "1" indicates admin echo json_encode(["success" => "Login successful", "isAdmin" => $_SESSION["isAdmin"]]); } else { echo json_encode(["error" => "Invalid credentials"]); }