> This works great, except it doesn't accept the country code 
> domains (.au, etc).  So I changed the number of characters to {2,3} at the

> end of the regex:
> ([a-z0-9_\.\-]+)@([a-z0-9\.-]+).([a-z]{2,3})
> 
> But then this works for the country code domains, but cuts 
> off a character of the 3 char domains because it matches the 2 characters
as 
> well. So if I'm using the [EMAIL PROTECTED] email address I end up with $1 = 
> "my", $2 = "domain" and $3 = "om"
> 
> What do I do to catch both cases correctly?

   Function validEmail($emailaddress)
   { 
     // Decides if the email address is valid. Checks syntax and DNS 
     // records, for total smartass value. Returns "valid", "invalid-mx" 
     // or "invalid-form".
   
     if
(eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$",
$emailaddress, $check))
     {
       if ( checkdnsrr(substr(strstr($check[0], '@'), 1), "ANY") ) 
       { return "valid"; }
       else
       { return "invalid-mx"; } 
     }
     else
     {
       return "invalid-form"; 
     }
   }

If it gets through the first match with ".om", it won't get through the
checkdnsrr().

Jason

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to