> 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]