false, 'message' => '未知请求']; try { switch ($path) { case '/api/register': $response = handleRegister(); break; case '/api/login': $response = handleLogin(); break; case '/api/logout': $response = handleLogout(); break; case '/api/status': $response = handleStatus(); break; default: // 检查是否是静态文件 $filePath = __DIR__ . $path; if (file_exists($filePath) && is_file($filePath)) { $ext = pathinfo($path, PATHINFO_EXTENSION); $mimeTypes = [ 'js' => 'application/javascript', 'css' => 'text/css', 'html' => 'text/html', 'png' => 'image/png', 'jpg' => 'image/jpeg', 'gif' => 'image/gif', ]; header('Content-Type: ' . ($mimeTypes[$ext] ?? 'application/octet-stream')); readfile($filePath); exit; } http_response_code(404); $response = ['success' => false, 'message' => '未找到']; } } catch (Exception $e) { http_response_code(500); $response = ['success' => false, 'message' => '服务器错误: ' . $e->getMessage()]; } echo json_encode($response, JSON_UNESCAPED_UNICODE); // ============ 处理函数 ============ function getInput(): array { $input = file_get_contents('php://input'); return json_decode($input, true) ?? []; } function handleRegister(): array { $data = getInput(); $username = $data['username'] ?? ''; $password = $data['password'] ?? ''; $userManager = new UserManager(); $result = $userManager->register($username, $password); if ($result['success']) { $_SESSION['user_id'] = $result['userId']; $_SESSION['username'] = $username; } return $result; } function handleLogin(): array { $data = getInput(); $username = $data['username'] ?? ''; $password = $data['password'] ?? ''; $userManager = new UserManager(); $result = $userManager->login($username, $password); if ($result['success']) { $_SESSION['user_id'] = $result['userId']; $_SESSION['username'] = $username; } return $result; } function handleLogout(): array { session_destroy(); return ['success' => true, 'message' => '已退出登录']; } function handleStatus(): array { if (empty($_SESSION['user_id'])) { return ['success' => false, 'loggedIn' => false, 'message' => '未登录']; } return [ 'success' => true, 'loggedIn' => true, 'userId' => $_SESSION['user_id'], 'username' => $_SESSION['username'] ?? '未知', ]; }