Bug #53395 [Opn->Bgs]: FILTER_VALIDATE_EMAIL return false on valid emails
| From: | aharvey@php.net | Date: | Thu, 25 Nov 2010 03:06:45 +0000 |
| Subject: | Bug #53395 [Opn->Bgs]: FILTER_VALIDATE_EMAIL return false on valid emails | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-156431@lists.php.net to get a copy of this message | ||
Edit report at http://bugs.php.net/bug.php?id=53395&edit=1
ID: 53395
Updated by: aharvey@php.net
Reported by: edanpr at gmail dot com
Summary: FILTER_VALIDATE_EMAIL return false on valid emails
-Status: Open
+Status: Bogus
Type: Bug
-Package: Unknown/Other Function
+Package: Filter related
Operating System: debian
PHP Version: 5.3.3
Block user comment: N
Private report: N
New Comment:
filter_var() is right in both cases here: domain names can only
include consecutive hyphens when being used for internationalised
domains (which implies that the name is of the form xn--XXX), and the
local part of an e-mail address can't include consecutive dots, per
the grammar in RFC 5322.
Previous Comments:
------------------------------------------------------------------------
[2010-11-24 12:58:10] edanpr at gmail dot com
Description:
------------
In php 5.3.3 using filter_var to validate email (FILTER_VALIDATE_EMAIL)
that got more than one period (.) or dash (-) results in error while in
5.3.2 it didn't.
test@h--t.com will return false on 5.3.3 and true on 5.3.2
t..est@test.com will return false on 5.3.3 and true on 5.3.2
Test script:
---------------
<?
$adr1 = 't..est@test.com';
$adr2 = 'test@h--t.com';
var_dump(filter_var($adr1, FILTER_VALIDATE_EMAIL));
var_dump(filter_var($adr2, FILTER_VALIDATE_EMAIL));
Expected result:
----------------
string(15) "t..est@test.com"
string(13) "test@h--t.com"
Actual result:
--------------
bool(false)
bool(false)
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/bug.php?id=53395&edit=1