From 50160b4161cb138ba4818cd0bc4d9ef2a037f17d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Markus=20G=C3=BCnther?= Date: Thu, 9 Aug 2012 18:33:40 +0200 Subject: [PATCH] [BUGFIX] email validator The actuall email validator uses a regex to validate email addresses. The TYPO3 core offers a method in t3lib_div to validate email addresses. This patch replace the regex with t3lib_div::validEmail() Change-Id: I8157a61b8f056d0a60510ec3a7ba9dcb182cb0e5 Releases: 6.0, 4.7 Resolves: #6970 FLOW3 issue: #39714 Reviewed-on: http://review.typo3.org/13550 Reviewed-by: Helmut Hummel Tested-by: Helmut Hummel Reviewed-by: Ingo Pfennigstorf Tested-by: Ingo Pfennigstorf Reviewed-by: Christian Kuhn Tested-by: Christian Kuhn --- .../Validator/EmailAddressValidator.php | 16 +++------------- .../EmailAddressValidatorTest.php | 4 +--- .../Validator/EmailAddressValidatorTest.php | 5 +---- 3 files changed, 5 insertions(+), 20 deletions(-) diff --git a/typo3/sysext/extbase/Classes/Validation/Validator/EmailAddressValidator.php b/typo3/sysext/extbase/Classes/Validation/Validator/EmailAddressValidator.php index 6b44b08382ed..0953f22cb6b3 100644 --- a/typo3/sysext/extbase/Classes/Validation/Validator/EmailAddressValidator.php +++ b/typo3/sysext/extbase/Classes/Validation/Validator/EmailAddressValidator.php @@ -38,26 +38,16 @@ class Tx_Extbase_Validation_Validator_EmailAddressValidator extends Tx_Extbase_V * Checks if the given value is a valid email address. * If at least one error occurred, the result is FALSE. * - * The regexp is a modified version of the last one shown on - * http://www.regular-expressions.info/email.html - * * @param mixed $value The value that should be validated * @return boolean TRUE if the value is valid, FALSE if an error occured */ public function isValid($value) { $this->errors = array(); - if (is_string($value) && preg_match(' - /^ - [a-z0-9!#$%&\'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+)* - @ - (?: - (?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[a-z]{2}|aero|asia|biz|cat|com|edu|coop|gov|info|int|invalid|jobs|localdomain|mil|mobi|museum|name|net|org|pro|tel|travel)| - localhost| - (?:(?:\d{1,2}|1\d{1,2}|2[0-4][0-9]|25[0-5])\.){3}(?:(?:\d{1,2}|1\d{1,2}|2[0-4][0-9]|25[0-5])) - ) - $/Dix', $value)) { + + if (is_string($value) && t3lib_div::validEmail($value)) { return TRUE; } + $this->addError('The given subject was not a valid email address.', 1221559976); return FALSE; } diff --git a/typo3/sysext/extbase/Tests/Unit/Validation/Validator/BeforeExtbase14/EmailAddressValidatorTest.php b/typo3/sysext/extbase/Tests/Unit/Validation/Validator/BeforeExtbase14/EmailAddressValidatorTest.php index adc6636e8fa6..53f1dd24743e 100644 --- a/typo3/sysext/extbase/Tests/Unit/Validation/Validator/BeforeExtbase14/EmailAddressValidatorTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Validation/Validator/BeforeExtbase14/EmailAddressValidatorTest.php @@ -45,12 +45,10 @@ class Tx_Extbase_Tests_Unit_Validation_Validator_BeforeExtbase14_EmailAddressVal public function validAddresses() { return array( array('andreas.foerthner@netlogix.de'), - array('user@localhost'), array('user@localhost.localdomain'), array('info@guggenheim.museum'), array('just@test.invalid'), - array('just+spam@test.de'), - array('local@192.168.0.2') + array('just+spam@test.de') ); } diff --git a/typo3/sysext/extbase/Tests/Unit/Validation/Validator/EmailAddressValidatorTest.php b/typo3/sysext/extbase/Tests/Unit/Validation/Validator/EmailAddressValidatorTest.php index 7b25cec8513e..c552ef6d697e 100644 --- a/typo3/sysext/extbase/Tests/Unit/Validation/Validator/EmailAddressValidatorTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Validation/Validator/EmailAddressValidatorTest.php @@ -40,13 +40,10 @@ class Tx_Extbase_Tests_Unit_Validation_Validator_EmailAddressValidatorTest exten public function validAddresses() { return array( array('andreas.foerthner@netlogix.de'), - array('user@localhost'), array('user@localhost.localdomain'), array('info@guggenheim.museum'), array('just@test.invalid'), - array('just+spam@test.de'), - array('just+spam@192.168.249.100'), - array('local@192.168.0.2') + array('just+spam@test.de') ); } -- 2.20.1