diff options
author | Joas Schilling <nickvergessen@gmx.de> | 2014-05-05 16:59:55 +0200 |
---|---|---|
committer | Joas Schilling <nickvergessen@gmx.de> | 2014-05-29 02:14:41 +0200 |
commit | 911725a5812cff5c1a0daa37b99767b5144e8a11 (patch) | |
tree | c8f51379a43a7ea6ab7011380005d29f078eb4e3 /phpBB/includes/functions_user.php | |
parent | f01e0a2eef0604367620e8b9aa323f3feb86ea3c (diff) | |
download | forums-911725a5812cff5c1a0daa37b99767b5144e8a11.tar forums-911725a5812cff5c1a0daa37b99767b5144e8a11.tar.gz forums-911725a5812cff5c1a0daa37b99767b5144e8a11.tar.bz2 forums-911725a5812cff5c1a0daa37b99767b5144e8a11.tar.xz forums-911725a5812cff5c1a0daa37b99767b5144e8a11.zip |
[ticket/10073] Split email validation from email ban and taken checks
PHPBB3-10073
Diffstat (limited to 'phpBB/includes/functions_user.php')
-rw-r--r-- | phpBB/includes/functions_user.php | 45 |
1 files changed, 35 insertions, 10 deletions
diff --git a/phpBB/includes/functions_user.php b/phpBB/includes/functions_user.php index 3dcb32350e..fafe29f957 100644 --- a/phpBB/includes/functions_user.php +++ b/phpBB/includes/functions_user.php @@ -1746,25 +1746,21 @@ function validate_password($password) } /** -* Check to see if email address is banned or already present in the DB +* Check to see if email address is a valid address and contains a MX record * * @param string $email The email to check -* @param string $allowed_email An allowed email, default being $user->data['user_email'] * * @return mixed Either false if validation succeeded or a string which will be used as the error message (with the variable name appended) */ -function validate_email($email, $allowed_email = false) +function phpbb_validate_email($email, $config = null) { - global $config, $db, $user; - - $email = strtolower($email); - $allowed_email = ($allowed_email === false) ? strtolower($user->data['user_email']) : strtolower($allowed_email); - - if ($allowed_email == $email) + if ($config === null) { - return false; + global $config; } + $email = strtolower($email); + if (!preg_match('/^' . get_preg_expression('email') . '$/i', $email)) { return 'EMAIL_INVALID'; @@ -1782,6 +1778,35 @@ function validate_email($email, $allowed_email = false) } } + return false; +} + +/** +* Check to see if email address is banned or already present in the DB +* +* @param string $email The email to check +* @param string $allowed_email An allowed email, default being $user->data['user_email'] +* +* @return mixed Either false if validation succeeded or a string which will be used as the error message (with the variable name appended) +*/ +function validate_user_email($email, $allowed_email = false) +{ + global $config, $db, $user; + + $email = strtolower($email); + $allowed_email = ($allowed_email === false) ? strtolower($user->data['user_email']) : strtolower($allowed_email); + + if ($allowed_email == $email) + { + return false; + } + + $validate_email = phpbb_validate_email($email, $config); + if ($validate_email) + { + return $validate_email; + } + if (($ban_reason = $user->check_ban(false, false, $email, true)) !== false) { return ($ban_reason === true) ? 'EMAIL_BANNED' : $ban_reason; |