Req #49576 [Asn->Csd]: Filter var for validating email is not validating emails correctly

[email protected] Fri, 2 Apr 2010 19:57:46 +0200 (CEST)
Newsgroups php.bugs
Message-ID <[email protected]>
Edit report at http://bugs.php.net/bug.php?id=49576&edit=1

 ID:               49576
 Updated by:       [email protected]
 Reported by:      mparkin at de-facto dot com
 Summary:          Filter var for validating email is not validating
                   emails correctly
-Status:           Assigned
+Status:           Closed
 Type:             Feature/Change Request
 Package:          *General Issues
 Operating System: *
 PHP Version:      5.*, 6
 Assigned To:      rasmus

 New Comment:

A much better RFC-compliant regex has been committed now.


Previous Comments:
------------------------------------------------------------------------
[2010-04-02 19:56:39] [email protected]

Automatic comment from SVN on behalf of rasmus
Revision: http://svn.php.net/viewvc/?view=revision&amp;revision=297350
Log: Update the FILTER_VALIDATE_EMAIL filter to fix bug #49576

------------------------------------------------------------------------
[2010-04-02 07:40:29] [email protected]

Finally having a look at this.  Some of your cases are actually
incorrect 
according to RFC3696/RFC5322

For example.  [email protected] is not a valid email address
according 
to the RFC.  IPs in an email address must be in square brackets.  So it
should 
be IPInsteadOfDomain@[127.0.0.1] for that one to be valid.  This is
valid under 
both RFC822 and RFC2822, but RFC3696 and RFC5322 updates those RFCs. 
And you 
can't have a port in it, so [email protected]:25 is invalid as well,
even if 
you added the square brackets.  Also we do not validate domains, so your
2 
examples of invalid TLDs are not relevant.

I'll have an update of the baked in regex soon, but it sounds like you
need to 
update the Kohana one as well.

------------------------------------------------------------------------
[2009-09-17 08:53:51] mparkin at de-facto dot com

Description:
------------
Filter_Var does not validate emails accurately enough, and false
positives are made. The regex needs improving - the regex we are using
in kohanaphp framework (with preg_match) is more accurate.

some more reading could be done here:

http://fightingforalostcause.net/misc/2006/compare-email-regex.php

Reproduce code:
---------------
http://codepad.org/UIrhI5ep

Expected result:
----------------
All emails in $valid are valid, all emails in $invalid are invalid.

A far more accurate regex can be found here:

http://dev.kohanaphp.com/projects/kohana2/repository/entry/trunk/system/helpers/valid.php#L20

Actual result:
--------------
There are false positives and non failures.




------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=49576&edit=1