--- common.inc 2004-12-30 16:00:00.000000000 +0100 +++ common.inc.new 2005-01-08 14:50:13.857500000 +0100 @@ -530,7 +530,7 @@ /** * Verify the syntax of the given e-mail address. * - * Empty e-mail addresses are allowed. See RFC 2822 for details. + * Empty e-mail addresses are not allowed. See RFC 2822 and RFC 1035 for details. * * @param $mail * A string containing an email address. @@ -539,7 +539,13 @@ */ function valid_email_address($mail) { $user = '[a-zA-Z0-9_\-\.\+\^!#\$%&*+\/\=\?\`\|\{\}~\']+'; - $domain = '(?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.?)+'; + + $letter = '[a-zA-Z]'; + $letterdigit = '[a-zA-Z0-9]'; + $letterdigithyphen = '[-a-zA-Z0-9]'; + $domainpart = "$letter(?:$letterdigithyphen*$letterdigit)?"; + $domain = "(?:(?:$domainpart\.)*$domainpart)"; + $ipv4 = '[0-9]{1,3}(\.[0-9]{1,3}){3}'; $ipv6 = '[0-9a-fA-F]{1,4}(\:[0-9a-fA-F]{1,4}){7}';