Переглянути джерело

[ZF-7323] Zend_Validate:

- reverted support for unicode latin charset table
  (even if it's explicit supported by the COM registrar)

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@16896 44c647ce-9c0f-0410-b52a-842ac1e357ba
thomas 16 роки тому
батько
коміт
a0e2b2541f

+ 3 - 2
library/Zend/Validate/Hostname/Com.php

@@ -32,7 +32,7 @@ return array(
     2  => '/^[\x{002d}0-9\x{0370}-\x{03ff}]{1,63}$/iu',
     3  => '/^[\x{002d}0-9a-z\x{ac00}-\x{d7a3}]{1,17}$/iu',
     4  => '/^[\x{002d}0-9a-z·à-öø-ÿāăąćĉċčďđēĕėęěĝğġģĥħĩīĭįıĵķĸĺļľłńņňŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷźżž]{1,63}$/iu',
-    5  => '/^[\x{0021}-\x{007E}\x{3400}-\x{3401}\x{3404}-\x{3406}\x{340C}\x{3416}\x{341C}' .
+    5  => '/^[\x{002d}0-9A-Za-z\x{3400}-\x{3401}\x{3404}-\x{3406}\x{340C}\x{3416}\x{341C}' .
 '\x{3421}\x{3424}\x{3428}-\x{3429}\x{342B}-\x{342E}\x{3430}-\x{3434}\x{3436}' .
 '\x{3438}-\x{343C}\x{343E}\x{3441}-\x{3445}\x{3447}\x{3449}-\x{3451}\x{3453}' .
 '\x{3457}-\x{345F}\x{3463}-\x{3467}\x{346E}-\x{3471}\x{3473}-\x{3477}\x{3479}-\x{348E}\x{3491}-\x{3497}' .
@@ -119,7 +119,7 @@ return array(
 '\x{9772}-\x{982B}\x{982D}-\x{98ED}\x{98EF}-\x{99C4}\x{99C6}-\x{9A11}\x{9A14}-\x{9A27}\x{9A29}-\x{9D0D}' .
 '\x{9D0F}-\x{9D2B}\x{9D2D}-\x{9D8E}\x{9D90}-\x{9DC5}\x{9DC7}-\x{9E77}\x{9E79}-\x{9EB8}\x{9EBB}-\x{9F20}' .
 '\x{9F22}-\x{9F61}\x{9F63}-\x{9FA5}\x{FA28}]{1,20}$/iu',
-    6 => '/^[\x{0021}-\x{007E}]{1,63}$/iu',
+    6 => '/^[\x{002d}0-9A-Za-z]{1,63}$/iu',
     7 => '/^[\x{00A1}-\x{00FF}]{1,63}$/iu',
     8 => '/^[\x{0100}-\x{017f}]{1,63}$/iu',
     9 => '/^[\x{0180}-\x{024f}]{1,63}$/iu',
@@ -194,4 +194,5 @@ return array(
     78 => '/^[\x{FF00}-\x{FFEF}]{1,63}$/iu',
     79 => '/^[\x{20000}-\x{2A6DF}]{1,63}$/iu',
     80 => '/^[\x{2F800}-\x{2FA1F}]{1,63}$/iu'
+
 );

+ 10 - 0
tests/Zend/Validate/HostnameTest.php

@@ -341,4 +341,14 @@ class Zend_Validate_HostnameTest extends PHPUnit_Framework_TestCase
     {
         $this->assertFalse($this->_validator->isValid(array(1 => 1)));
     }
+
+    /**
+     * @ZF-7323
+     */
+    public function testLatinSpecialChars()
+    {
+        $this->assertFalse($this->_validator->isValid('place@yah&oo.com'));
+        $this->assertFalse($this->_validator->isValid('place@y*ahoo.com'));
+        $this->assertFalse($this->_validator->isValid('ya#hoo'));
+    }
 }