From 0268a2b9d2a15a6d7a9e6c9c50478bc1b4d61179 Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Tue, 26 Apr 2016 04:50:07 -0400
Subject: [PATCH] validator for email

---
 interface/lib/classes/tform_base.inc.php |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/interface/lib/classes/tform_base.inc.php b/interface/lib/classes/tform_base.inc.php
index 1739c1f..edab62f 100644
--- a/interface/lib/classes/tform_base.inc.php
+++ b/interface/lib/classes/tform_base.inc.php
@@ -973,13 +973,22 @@
 						$this->errorMessage .= $errmsg."<br />\r\n";
 					}
 				}
+				break;
 			case 'ISEMAIL':
+				$error = false;
 				if($validator['allowempty'] != 'y') $validator['allowempty'] = 'n';
 				if($validator['allowempty'] == 'y' && $field_value == '') {
 					//* Do nothing
 				} else {
 					if(function_exists('filter_var')) {
 						if(filter_var($field_value, FILTER_VALIDATE_EMAIL) === false) {
+							$error = true;
+						} else {
+							if (!preg_match("/^[^\\+]+$/", $field_value)) { // * disallow + in local-part
+								$error = true;
+							}
+						}
+						if ($error) {
 							$errmsg = $validator['errmsg'];
 							if(isset($this->wordbook[$errmsg])) {
 								$this->errorMessage .= $this->wordbook[$errmsg]."<br />\r\n";
@@ -987,8 +996,10 @@
 								$this->errorMessage .= $errmsg."<br />\r\n";
 							}
 						}
+
 					} else $this->errorMessage .= "function filter_var missing <br />\r\n";
 				}
+				unset($error);
 				break;
 			case 'ISINT':
 				if(function_exists('filter_var') && $field_value < 2147483647) {

--
Gitblit v1.9.1