Procházet zdrojové kódy

ZF-11451 ZF-11222
Zend_Validate
Fixed regression in email address validation introduced in ZF-6363 (r23487)
Zend_Validate_EmailAddress stopped rejecting email addresses with trailing dot in host part


git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@24124 44c647ce-9c0f-0410-b52a-842ac1e357ba

adamlundrigan před 14 roky
rodič
revize
07d3bcb324

+ 2 - 1
library/Zend/Validate/EmailAddress.php

@@ -527,8 +527,9 @@ class Zend_Validate_EmailAddress extends Zend_Validate_Abstract
         $this->_setValue($value);
 
         // Split email address up and disallow '..'
+        // and disallow addresses ending with a '.'
         if ((strpos($value, '..') !== false) or
-            (!preg_match('/^(.+)@([^@]+)$/', $value, $matches))) {
+            (!preg_match('/^(.+)@([^@]+[^.])$/', $value, $matches))) {
             $this->_error(self::INVALID_FORMAT);
             return false;
         }

+ 11 - 0
tests/Zend/Validate/EmailAddressTest.php

@@ -554,6 +554,17 @@ class Zend_Validate_EmailAddressTest extends PHPUnit_Framework_TestCase
     {
         $this->assertTrue($this->_validator->getDomainCheck());
     }
+    
+    /**
+     * @group ZF-11222
+     * @group ZF-11451
+     */
+    public function testEmailAddressesWithTrailingDotInHostPartAreRejected()
+    {
+        $this->assertFalse($this->_validator->isValid('example@gmail.com.'));
+        $this->assertFalse($this->_validator->isValid('test@test.co.'));
+        $this->assertFalse($this->_validator->isValid('test@test.co.za.'));
+    }
 
     public function errorHandler($errno, $errstr)
     {