ID:               50158
 Updated by:       pierr...@php.net
 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] j...@php.net

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


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

[2009-11-12 17:07:56] j...@php.net

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) "test=m...@example.com"
string(21) "test-m...@example.com"
string(21) "test+m...@example.com"

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

[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 = "test=m...@example.com";    
var_dump(filter_var($email_address, FILTER_VALIDATE_EMAIL));    
                                                                
$email_address = "test-m...@example.com";    
var_dump(filter_var($email_address, FILTER_VALIDATE_EMAIL));    
    
$email_address = "test+m...@example.com";    
var_dump(filter_var($email_address, FILTER_VALIDATE_EMAIL));    
                                                                       

?>


Expected result:
----------------
string(21) "test-m...@example.com"
string(21) "test-m...@example.com"
string(21) "test+m...@example.com"


Actual result:
--------------
bool(false)
string(21) "test+m...@example.com"
string(21) "test+m...@example.com"


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


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

Reply via email to