if ($explode_field_value[count($explode_field_value)-1]=='' && $explode_field_value[count($explode_field_value)-2]=='' ){
if ( count($explode_field_value) <= 9 ) {
if(filter_var(substr($field_value,0,strlen($field_value)-2),FILTER_VALIDATE_IP,FILTER_FLAG_IPV6) or filter_var(substr($field_value,0,strlen($field_value)-2).'::0',FILTER_VALIDATE_IP,FILTER_FLAG_IPV6) or filter_var(substr($field_value,0,strlen($field_value)-2).':0',FILTER_VALIDATE_IP,FILTER_FLAG_IPV6) ) {
$v6_prefix_ok = 1;
}
}
} else {
$v6_prefix_ok = 2;
}
// check subnet against defined server-ipv6
$sql_v6 = $app->db->queryOneRecord("SELECT ip_address FROM server_ip WHERE ip_type = 'IPv6' AND virtualhost = 'y' LIMIT 0,1");
if ( count($sql_v6_explode) < count($explode_field_value) && isset($sql_v6['ip_address']) ) {
$v6_prefix_ok = 3;
}
if($v6_prefix_ok == 0) {
$errmsg = $validator['errmsg'];
}
if($v6_prefix_ok == 2) {
$errmsg = 'IPv6 Prefix must end with ::';
}
if($v6_prefix_ok == 3) {
$errmsg = 'IPv6 Prefix too long (according to Server IP Addresses)';
}
if($v6_prefix_ok <> 1){
$this->errorMessage .= $errmsg."<br />\r\n";
}
case 'ISV6PREFIX':
$v6_prefix_ok = 0;
$explode_field_value = explode(':',$field_value);
if ($explode_field_value[count($explode_field_value)-1]=='' && $explode_field_value[count($explode_field_value)-2]=='' ){
if ( count($explode_field_value) <= 9 ) {
if(filter_var(substr($field_value,0,strlen($field_value)-2),FILTER_VALIDATE_IP,FILTER_FLAG_IPV6) or filter_var(substr($field_value,0,strlen($field_value)-2).'::0',FILTER_VALIDATE_IP,FILTER_FLAG_IPV6) or filter_var(substr($field_value,0,strlen($field_value)-2).':0',FILTER_VALIDATE_IP,FILTER_FLAG_IPV6) ) {
$v6_prefix_ok = 1;
}
}
} else {
$v6_prefix_ok = 2;
}
// check subnet against defined server-ipv6
$sql_v6 = $app->db->queryOneRecord("SELECT ip_address FROM server_ip WHERE ip_type = 'IPv6' AND virtualhost = 'y' LIMIT 0,1");