getById($id); if ($row) { $filterRepo->updateStatus($id, !(bool)$row['is_active']); } header('Location: filters.php'); // 302 跳回干净地址 exit; } // 处理创建过滤规则 if (isset($_POST['create_filter'])) { $ruleType = $_POST['rule_type'] ?? ''; $ruleValue = trim($_POST['rule_value'] ?? ''); $action = $_POST['action'] ?? 'block'; $description = trim($_POST['description'] ?? ''); if (empty($ruleValue)) { $error = "规则值不能为空"; } else { if ($ruleType === 'email') { if (!Validator::validateEmail($ruleValue)) { $error = "邮箱格式无效"; } } elseif ($ruleType === 'ip') { if (!Validator::validateIP($ruleValue)) { $error = "IP地址格式无效"; } } else { $error = "规则类型无效"; } if (empty($error)) { try { if ($filterRepo->create($ruleType, $ruleValue, $action, $description)) { $message = "过滤规则创建成功"; } else { $error = "创建失败,可能已存在相同规则"; } } catch (Exception $e) { $error = "创建失败: " . $e->getMessage(); } } } } // 处理删除规则 if (isset($_GET['delete'])) { $id = (int)$_GET['delete']; if ($filterRepo->delete($id)) { $message = "规则删除成功"; } else { $error = "删除失败"; } } /*------------------------------------ // 处理切换规则状态 if (isset($_GET['toggle'])) { $id = (int)$_GET['toggle']; $row = $filterRepo->getById($id); // 改用 public 方法 if ($row) { $newStatus = !(bool)$row['is_active']; if ($filterRepo->updateStatus($id, $newStatus)) { $message = "规则状态已更新"; } else { $error = "更新失败"; } } else { $error = "规则不存在"; } } ------------------------------------ */ // 获取所有规则 $rules = $filterRepo->getAll(); ?>