Fix validation of email addresses with IDNA domains (#1490067)
| | |
| | | - Fix handling of email addresses with quoted domain part (#1490040) |
| | | - Fix comm_path update on task switch (#1490041) |
| | | - Fix error in MSSQL update script 2013061000.sql (#1490061) |
| | | - Fix validation of email addresses with IDNA domains (#1490067) |
| | | |
| | | RELEASE 1.0.2 |
| | | ------------- |
| | |
| | | } |
| | | |
| | | foreach ($domain_array as $part) { |
| | | if (!preg_match('/^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]))$/', $part)) { |
| | | if (!preg_match('/^((xn--)?([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]))$/', $part)) { |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | // last domain part |
| | | if (preg_match('/[^a-zA-Z]/', array_pop($domain_array))) { |
| | | $last_part = array_pop($domain_array); |
| | | if (strpos($last_part, 'xn--') !== 0 && preg_match('/[^a-zA-Z]/', $last_part)) { |
| | | return false; |
| | | } |
| | | |
| | |
| | | array('email@domain.name', '.name is valid Top Level Domain name'), |
| | | array('email@domain.co.jp', 'Dot in Top Level Domain name also considered valid (use co.jp as example here)'), |
| | | array('firstname-lastname@domain.com', 'Dash in address field is valid'), |
| | | array('test@xn--e1aaa0cbbbcacac.xn--p1ai', 'IDNA domain'), |
| | | ); |
| | | } |
| | | |