$id) { $id = (int)$id; if ($id <= 0 || !isset($selected_set[$id])) continue; // Получаем тип правила $rule_type = (int)($types[$i] ?? 3); $raw_rule = trim($rules[$i] ?? ''); $desc = trim($descriptions[$i] ?? ''); if ($raw_rule === '') continue; $new_rule = $raw_rule; // Валидация в зависимости от типа if ($rule_type == 1) { // IP-адрес if (!checkValidIp($new_rule)) { continue; // пропускаем невалидный IP } } elseif ($rule_type == 2) { // MAC-адрес $normalized_mac = MayBeMac($new_rule); if ($normalized_mac === null) { continue; // пропускаем невалидный MAC } $new_rule = $normalized_mac; } $new = [ 'rule_type' => $rule_type, 'rule' => $new_rule, 'description' => $desc ]; update_auth_rule($db_link, $new, $id); } } header("Location: " . $_SERVER["REQUEST_URI"]); exit; } // Создание нового правила if (getPOST("s_create") !== null) { $new_rule = trim(getPOST("s_new_rule", null, '')); $rule_type = (int)getPOST("s_new_type", null, 3); if ($new_rule !== '') { if ($rule_type == 1 and !checkValidIp($new_rule)) { header("Location: " . $_SERVER["REQUEST_URI"]); exit; } if ($rule_type == 2 and MayBeMac($new_rule)==null) { header("Location: " . $_SERVER["REQUEST_URI"]); exit; } if ($rule_type == 2) { $new_rule = MayBeMac($new_rule); } add_auth_rule($db_link, $new_rule, $rule_type, $id); } header("Location: " . $_SERVER["REQUEST_URI"]); exit; } unset($_POST); fix_auth_rules($db_link); require_once ($_SERVER['DOCUMENT_ROOT'] . "/inc/header.php"); ?>