Hi Christoph, I just noticed it and wondering whether usage of filter_var() is safe here. Either I forgot about something or not all of the PHP.net mirrors are running 5.4+ so far...
Cheers, Maciej. W dniu 17.08.2017 o 18:44, Christoph Michael Becker pisze:
Commit: 7be864b190c1953c51622893a27a43fc7645c0fa Author: Andreas Heigl <andr...@heigl.org> Thu, 17 Aug 2017 18:44:27 +0200 Parents: c716ac3b05262660372bd0af199aec78c140f3ab Branches: master Link: http://git.php.net/?p=web/php.git;a=commitdiff;h=7be864b190c1953c51622893a27a43fc7645c0fa Log: Adapts the validation to use filter_var Everything else is then simply refinement Changed paths: M include/email-validation.inc Diff: diff --git a/include/email-validation.inc b/include/email-validation.inc index 05b964b..c5b1ca5 100644 --- a/include/email-validation.inc +++ b/include/email-validation.inc @@ -12,30 +12,25 @@ function clean_AntiSPAM($email) // Try to check that this email address is valid function is_emailable_address($email) { + $email = filter_var($email, FILTER_VALIDATE_EMAIL); // No email, no validation - if (empty($email)) { - return false; - } - - $parts = explode('@', $email); - // An email-address with more than one '@' can't be valid - if (count($parts) != 2) { + if (! $email) { return false; } + $host = substr($email, strrpos($email, '@') + 1); // addresses from our mailing-list servers - $host_part_regex = "!(lists\.php\.net|chek[^\.*]\.com)!i"; - if (preg_match($host_part_regex, $email)) { + $host_regex = "!(lists\.php\.net|chek[^\.*]\.com)!i"; + if (preg_match($host_regex, $host)) { return false; } // When no MX-Entry can be found it's for sure not a valid email-address. - if (getmxrr($parts[1], $return_values) === false) { + if (getmxrr($host, $return_values) === false) { return false; } - $address_part_regex = ":^([-!#$%&'*+./0-9=?A-Z^_`a-z{|}~ ])+:i"; - return (bool) preg_match($address_part_regex, $parts[0]); + return true; } /**
-- PHP Webmaster List Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php