From a9eeb2f4085392a9cc150764825b6c93a10e1a50 Mon Sep 17 00:00:00 2001 From: azett Date: Wed, 25 Dec 2019 22:40:11 +0100 Subject: [PATCH] Fix for #48: Mail adresses are accepted in a broader range. --- .../plugins/validate_criteria.isEmail.php | 47 ++++++++++--------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/fp-includes/smarty/plugins/validate_criteria.isEmail.php b/fp-includes/smarty/plugins/validate_criteria.isEmail.php index 0a662d2..3b8826a 100644 --- a/fp-includes/smarty/plugins/validate_criteria.isEmail.php +++ b/fp-includes/smarty/plugins/validate_criteria.isEmail.php @@ -1,9 +1,9 @@ + * Project: SmartyValidate: Form Validator for the Smarty Template Engine + * File: validate_criteria.isEmail.php + * Author: Monte Ohrt * * This library is free software; you can redistribute it and/or * 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, * 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. * * You should have received a copy of the GNU Lesser General Public * 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/ * @copyright 2001-2005 New Digital Group, Inc. @@ -25,31 +25,32 @@ * @package SmartyValidate */ - /** +/** * test if a value is a valid e-mail address * - * @param string $value the value being tested - * @param boolean $empty if field can be empty - * @param array params validate parameter values - * @param array formvars form var values + * @param string $value + * the value being tested + * @param boolean $empty + * 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) { + if (strlen($value) == 0) + return $empty; - if(strlen($value) == 0) - return $empty; + // in case value is several addresses separated by newlines + $_addresses = preg_split('![\n\r]+!', $value); - // in case value is several addresses separated by newlines - $_addresses = preg_split('![\n\r]+!', $value); + foreach ($_addresses as $_address) { + $_is_valid = !(preg_match('!@.*@|\.\.|\,|\;!', $_address) || !preg_match('!^.+\@(\[?)[a-zA-Z0-9\.\-]+\.([a-zA-Z]{2,}|[0-9]{1,})(\]?)$!', $_address)); - foreach($_addresses as $_address) { - $_is_valid = !(preg_match('!@.*@|\.\.|\,|\;!', $_address) || - !preg_match('!^.+\@(\[?)[a-zA-Z0-9\.\-]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$!', $_address)); - - if(!$_is_valid) - return false; - } - return true; + if (!$_is_valid) + return false; + } + return true; } ?>