Fix for #48: Mail adresses are accepted in a broader range.
This commit is contained in:
parent
23c4c33ee1
commit
a9eeb2f408
@ -1,9 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Project: SmartyValidate: Form Validator for the Smarty Template Engine
|
* Project: SmartyValidate: Form Validator for the Smarty Template Engine
|
||||||
* File: validate_criteria.isEmail.php
|
* File: validate_criteria.isEmail.php
|
||||||
* Author: Monte Ohrt <monte at newdigitalgroup dot com>
|
* Author: Monte Ohrt <monte at newdigitalgroup dot com>
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
@ -12,12 +12,12 @@
|
|||||||
*
|
*
|
||||||
* This library is distributed in the hope that it will be useful,
|
* This library is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
* Lesser General Public License for more details.
|
* Lesser General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
* License along with this library; if not, write to the Free Software
|
* License along with this library; if not, write to the Free Software
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
*
|
*
|
||||||
* @link http://www.phpinsider.com/php/code/SmartyValidate/
|
* @link http://www.phpinsider.com/php/code/SmartyValidate/
|
||||||
* @copyright 2001-2005 New Digital Group, Inc.
|
* @copyright 2001-2005 New Digital Group, Inc.
|
||||||
@ -25,31 +25,32 @@
|
|||||||
* @package SmartyValidate
|
* @package SmartyValidate
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* test if a value is a valid e-mail address
|
* test if a value is a valid e-mail address
|
||||||
*
|
*
|
||||||
* @param string $value the value being tested
|
* @param string $value
|
||||||
* @param boolean $empty if field can be empty
|
* the value being tested
|
||||||
* @param array params validate parameter values
|
* @param boolean $empty
|
||||||
* @param array formvars form var values
|
* if field can be empty
|
||||||
|
* @param
|
||||||
|
* array params validate parameter values
|
||||||
|
* @param
|
||||||
|
* array formvars form var values
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function smarty_validate_criteria_isEmail($value, $empty, &$params, &$formvars) {
|
function smarty_validate_criteria_isEmail($value, $empty, &$params, &$formvars) {
|
||||||
|
if (strlen($value) == 0)
|
||||||
|
return $empty;
|
||||||
|
|
||||||
if(strlen($value) == 0)
|
// in case value is several addresses separated by newlines
|
||||||
return $empty;
|
$_addresses = preg_split('![\n\r]+!', $value);
|
||||||
|
|
||||||
// in case value is several addresses separated by newlines
|
foreach ($_addresses as $_address) {
|
||||||
$_addresses = preg_split('![\n\r]+!', $value);
|
$_is_valid = !(preg_match('!@.*@|\.\.|\,|\;!', $_address) || !preg_match('!^.+\@(\[?)[a-zA-Z0-9\.\-]+\.([a-zA-Z]{2,}|[0-9]{1,})(\]?)$!', $_address));
|
||||||
|
|
||||||
foreach($_addresses as $_address) {
|
if (!$_is_valid)
|
||||||
$_is_valid = !(preg_match('!@.*@|\.\.|\,|\;!', $_address) ||
|
return false;
|
||||||
!preg_match('!^.+\@(\[?)[a-zA-Z0-9\.\-]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$!', $_address));
|
}
|
||||||
|
return true;
|
||||||
if(!$_is_valid)
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user