Re: eregi filter stopping valid email address, part two
| From: | Manuel Lemos | Date: | Tue, 06 Jan 2004 16:49:03 +0000 |
| Subject: | Re: eregi filter stopping valid email address, part two | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-173869@lists.php.net to get a copy of this message | ||
Hello,
On 01/06/2004 01:52 PM, Dave G wrote:
A while ago on this list I posted a few questions about an eregi filter for email addresses entered into a form. With the help of people on this list, I settled on the following code which has worked fine in the months since I started using it. The code is this: eregi('^[a-zA-Z0-9+_.-]+@[a-zA-Z0-9-]+.[a-zA-Z.]+$', $email) But recently, a person was unable to get their email to pass this eregi test. The email is valid, as they are able to send email to me. It has the following format: xxxxxxxx@xx1.xx-xxx.ne.jp Shouldn't this email pass? I've allowed for hyphens after the @ mark. Is it that there are two many periods?No, your expression is really excluding many valid addresses. The RFC specify a much larger number of valid characters. You are also only allowing one possible dot in the domain name. I think it is better to allow some possibly invalid sequences and then perform a DNS/SMTP based validation. In that case you may want to try this e-mail validation class that performs first a regular expression based validation with a more complete expression and then performs DNS/SMTP based validation. http://www.phpclasses.org/emailvalidation -- Regards, Manuel Lemos Free ready to use OOP components written in PHP http://www.phpclasses.org/