Bug #69140 [Opn]: FILTER_VALIDATE_EMAIL not RFC 822 compliant

From: Date: Sun, 01 Mar 2015 18:18:10 +0000
Subject: Bug #69140 [Opn]: FILTER_VALIDATE_EMAIL not RFC 822 compliant
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-191026@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=69140&edit=1 ID: 69140 User updated by: info at linux-web-development dot de Reported by: info at linux-web-development dot de Summary: FILTER_VALIDATE_EMAIL not RFC 822 compliant Status: Open Type: Bug Package: Filter related PHP Version: Irrelevant Block user comment: N Private report: N New Comment: The docs are still not correct. The PHP validation is just wrong in more ways than just comments. e.g. the domain part could be a hostname without a dot, but this always comes back as false. This has real applications, e.g. under Linux when sending to [user]@localhost There is a reason frameworks don't use this built-in function but instead resort to their own validation for e-mails. So this function should either be clearly marked as non-RFC-compatible or just work as one would expect it to work. Sorry, but not fixing this because it's hard to implement is just a lame excuse. Implement it or leave it out, but don't implement some half-working frankenvalidation. Previous Comments: ------------------------------------------------------------------------ [2015-02-27 20:50:05] aharvey@php.net Automatic comment from SVN on behalf of aharvey Revision: http://svn.php.net/viewvc/?view=revision&revision=336016 Log: Expand on what FILTER_VALIDATE_EMAIL really validates. See also bug #69140 (FILTER_VALIDATE_EMAIL not RFC 822 compliant). ------------------------------------------------------------------------ [2015-02-27 20:46:26] aharvey@php.net The code does actually document that comments aren't handled, but that never made it to the docs. I'll fix that. I don't think this is worth fixing (the validation code is terrifying enough as it is, and, seriously, comments in e-mail addresses?), but I'll leave this open in case someone can provide a clean PR. ------------------------------------------------------------------------ [2015-02-27 17:02:32] info at linux-web-development dot de Description: ------------ When trying to validate an e-mail address using FILTER_VALIDATE_EMAIL will result in several problems with correct mail addresses. So far I could find the following compliant addresses not validating: foo@example foo@(bar)example.com foo@example.com(bar) Generally PHP should at comply with RFC 822 when validating mail addresses, otherwise the filter function is useless. Test script: --------------- var_dump(filter_var('foo@example', FILTER_VALIDATE_EMAIL)); Expected result: ---------------- string(11) "foo@example" Actual result: -------------- bool(false) ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=69140&edit=1

« previous php.bugs (#191026) next »