- fixing domain validation

- added validation for local hosts (mysql-hosts)
This commit is contained in:
Michael Kaufmann (d00p)
2010-04-12 16:36:09 +00:00
parent 209ab4dff9
commit ae27e06675
2 changed files with 20 additions and 9 deletions

View File

@@ -25,6 +25,7 @@ function checkMysqlAccessHost($fieldname, $fielddata, $newfieldvalue, $allnewfie
{ {
if(validate_ip($host_entry, true) == false if(validate_ip($host_entry, true) == false
&& validateDomain($host_entry) == false && validateDomain($host_entry) == false
&& validateLocalHostname($host_entry) == false
&& $host_entry != '%') && $host_entry != '%')
{ {
return array(FORMFIELDS_PLAUSIBILITY_CHECK_ERROR, 'invalidmysqlhost', $host_entry); return array(FORMFIELDS_PLAUSIBILITY_CHECK_ERROR, 'invalidmysqlhost', $host_entry);

View File

@@ -40,15 +40,8 @@ function validateDomain($domainname)
// there is a bug in php 5.2.13 - 5.3.2 which // there is a bug in php 5.2.13 - 5.3.2 which
// lets filter_var fail if the domain has // lets filter_var fail if the domain has
// a dash (-) in it. # // a dash (-) in it. #
if(version_compare("5.2.13", PHP_VERSION, ">=") if(version_compare("5.2.13", PHP_VERSION, "=")
&& version_compare("5.3.2", PHP_VERSION, "<=")) || version_compare("5.3.2", PHP_VERSION, "="))
{
if(filter_var($domainname_tmp, FILTER_VALIDATE_URL) !== false && filter_var($domainname_tmp, FILTER_VALIDATE_URL, FILTER_FLAG_PATH_REQUIRED) === false && filter_var($domainname_tmp, FILTER_VALIDATE_URL, FILTER_FLAG_QUERY_REQUIRED) === false)
{
return $domainname;
}
}
else
{ {
$pattern = '/^([a-z0-9]([a-z0-9\-]{0,61}[a-z0-9])?\.)+[a-z]{2,6}$/i'; $pattern = '/^([a-z0-9]([a-z0-9\-]{0,61}[a-z0-9])?\.)+[a-z]{2,6}$/i';
if(preg_match($pattern, $domainname_tmp)) if(preg_match($pattern, $domainname_tmp))
@@ -56,5 +49,22 @@ function validateDomain($domainname)
return $domainname; return $domainname;
} }
} }
else
{
if(filter_var($domainname_tmp, FILTER_VALIDATE_URL) !== false && filter_var($domainname_tmp, FILTER_VALIDATE_URL, FILTER_FLAG_PATH_REQUIRED) === false && filter_var($domainname_tmp, FILTER_VALIDATE_URL, FILTER_FLAG_QUERY_REQUIRED) === false)
{
return $domainname;
}
}
return false;
}
function validateLocalHostname($hostname)
{
$pattern = '/^([a-zA-Z0-9\-])+$/i';
if(preg_match($pattern, $hostname))
{
return $hostname;
}
return false; return false;
} }