ID:               50158
 Updated by:       [email protected]
 Reported By:      andrew dot nicols at luns dot net dot uk
 Status:           Verified
 Bug Type:         Filter related
 Operating System: *
 PHP Version:      5.*, 6
 Assigned To:      pierrick
 New Comment:

Patch available at:

http://www.adoy.net/php/50158.patch

This patch add = and ? to the local-part validation according to
RFC2822







Previous Comments:
------------------------------------------------------------------------

[2009-11-12 17:12:50] [email protected]

Quick check to the regexp used shows these are missing from allowed
part in it: = ?   


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

[2009-11-12 17:07:56] [email protected]

Yes, = is valid. And also any of these too:

! $ & * - = ^ ` | ~ # % ' + / ? _ { } 



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

[2009-11-12 14:57:16] andrew dot nicols at luns dot net dot uk

Copy/paste bug on my behalf. The expected result is:

string(21) "[email protected]"
string(21) "[email protected]"
string(21) "[email protected]"

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

[2009-11-12 14:56:05] andrew dot nicols at luns dot net dot uk

Description:
------------
The filter_var function, when used with FILTER_VALIDATE_EMAIL marks an
email address with an = in it as invalid.

According to RFCs 822, 2822 and 5322, = is a valid component to the
local-part of an e-mail address.

Reproduce code:
---------------
<?php    
    
$email_address = "[email protected]";    
var_dump(filter_var($email_address, FILTER_VALIDATE_EMAIL));    
                                                                
$email_address = "[email protected]";    
var_dump(filter_var($email_address, FILTER_VALIDATE_EMAIL));    
    
$email_address = "[email protected]";    
var_dump(filter_var($email_address, FILTER_VALIDATE_EMAIL));    
                                                                       

?>


Expected result:
----------------
string(21) "[email protected]"
string(21) "[email protected]"
string(21) "[email protected]"


Actual result:
--------------
bool(false)
string(21) "[email protected]"
string(21) "[email protected]"


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


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

Reply via email to