From d83abe0860e13d599b34e7e150e4ba2fd571db93 Mon Sep 17 00:00:00 2001 From: Florian Schaal Date: Thu, 25 Feb 2016 08:27:22 +0100 Subject: [PATCH] validate serverip depending on ipv4/ipv6 --- interface/lib/classes/validate_server.inc.php | 61 +++++++++++++++++++ interface/web/admin/form/server_ip.tform.php | 2 +- 2 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 interface/lib/classes/validate_server.inc.php diff --git a/interface/lib/classes/validate_server.inc.php b/interface/lib/classes/validate_server.inc.php new file mode 100644 index 0000000000..9a8dfcc278 --- /dev/null +++ b/interface/lib/classes/validate_server.inc.php @@ -0,0 +1,61 @@ +tform->wordbook[$errmsg])) { + return $app->tform->wordbook[$errmsg]."
\r\n"; + } else { + return $errmsg."
\r\n"; + } + } + + /** + * Validator function for server-ip + */ + function check_server_ip($field_name, $field_value, $validator) { + if($_POST['ip_type'] == 'IPv41') { + if(!filter_var($field_value, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) { + return $this->get_error($validator['errmsg']); + } + } elseif ($_POST['ip_type'] == 'IPv61') { + if(!filter_var($field_value, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) { + return $this->get_error($validator['errmsg']); + } + } else return $this->get_error($validator['errmsg']); + } + +} + diff --git a/interface/web/admin/form/server_ip.tform.php b/interface/web/admin/form/server_ip.tform.php index 0dbdfe190d..49a59de162 100644 --- a/interface/web/admin/form/server_ip.tform.php +++ b/interface/web/admin/form/server_ip.tform.php @@ -121,7 +121,7 @@ $form["tabs"]['server_ip'] = array ( 'ip_address' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISIP', + 'validators' => array ( 0 => array ( 'type' => 'CUSTOME', 'class' => 'validate_server', 'function' => 'check_server_ip', 'errmsg'=> 'ip_error_wrong'), 1 => array ( 'type' => 'UNIQUE', 'errmsg'=> 'ip_error_unique'), -- GitLab