diff --git a/include/functions_user.inc.php b/include/functions_user.inc.php index 1c4500328..925eeb2b0 100644 --- a/include/functions_user.inc.php +++ b/include/functions_user.inc.php @@ -24,46 +24,65 @@ // | USA. | // +-----------------------------------------------------------------------+ -// validate_mail_address verifies whether the given mail address has the -// right format. ie someone@domain.com "someone" can contain ".", "-" or -// even "_". Exactly as "domain". The extension doesn't have to be -// "com". The mail address can also be empty. +// validate_mail_address: +// o verifies whether the given mail address has the +// right format. ie someone@domain.com "someone" can contain ".", "-" or +// even "_". Exactly as "domain". The extension doesn't have to be +// "com". The mail address can also be empty. +// o check if address could be empty +// o check if address is not used by a other user // If the mail address doesn't correspond, an error message is returned. -function validate_mail_address( $mail_address ) +// +function validate_mail_address($mail_address) { - global $lang, $conf; + global $conf; if (empty($mail_address) and !($conf['obligatory_user_mail_address'] and in_array(script_basename(), array('register', 'profile')))) { return ''; } + $regex = '/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)*\.[a-z]+$/'; if ( !preg_match( $regex, $mail_address ) ) { - return $lang['reg_err_mail_address']; + return l10n('reg_err_mail_address'); + } + + if (defined("PHPWG_INSTALLED") and !empty($mail_address)) + { + $query = ' +select count(*) +from '.USERS_TABLE.' +where upper('.$conf['user_fields']['email'].') = upper(\''.$mail_address.'\') +;'; + list($count) = mysql_fetch_array(pwg_query($query)); + if ($count != 0) + { + return l10n('reg_err_mail_address_dbl'); + } } } function register_user($login, $password, $mail_address, $errors = array()) { - global $lang, $conf; + global $conf; if ($login == '') { - array_push($errors, $lang['reg_err_login1']); + array_push($errors, l10n('reg_err_login1')); } if (ereg("^.* $", $login)) { - array_push($errors, $lang['reg_err_login2']); + array_push($errors, l10n('reg_err_login2')); } if (ereg("^ .*$", $login)) { - array_push($errors, $lang['reg_err_login3']); + array_push($errors, l10n('reg_err_login3')); } if (get_userid($login)) { - array_push($errors, $lang['reg_err_login5']); + array_push($errors, l10n('reg_err_login5')); } $mail_error = validate_mail_address($mail_address); if ('' != $mail_error) diff --git a/language/en_UK.iso-8859-1/common.lang.php b/language/en_UK.iso-8859-1/common.lang.php index ed5ada707..a6dc8f0c8 100644 --- a/language/en_UK.iso-8859-1/common.lang.php +++ b/language/en_UK.iso-8859-1/common.lang.php @@ -637,4 +637,5 @@ $lang['guest_must_be_guest'] = 'Bad status for user "guest", using default statu $lang['add new elements to caddie'] = 'add new elements to caddie'; // --------- Starting below: New or revised $lang ---- from Butterfly (1.8) $lang['Administrator, webmaster and special user cannot use this method'] = 'Administrator, webmaster and special user cannot use this method'; +$lang['reg_err_mail_address_dbl'] = 'a user use already this mail address'; ?> diff --git a/language/en_UK.iso-8859-1/install.lang.php b/language/en_UK.iso-8859-1/install.lang.php index 880021612..d0e6f1139 100644 --- a/language/en_UK.iso-8859-1/install.lang.php +++ b/language/en_UK.iso-8859-1/install.lang.php @@ -4,8 +4,7 @@ // | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net | // | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net | // +-----------------------------------------------------------------------+ -// | branch : BSF (Best So Far) -// | file : $RCSfile$ +// | file : $Id$ // | last update : $Date$ // | last modifier : $Author$ // | revision : $Revision$ @@ -32,9 +31,6 @@ $lang['step1_title'] = 'Database configuration'; $lang['step2_title'] = 'Admin configuration'; $lang['Start_Install'] = 'Start Install'; $lang['reg_err_mail_address'] = 'mail address must be like xxx@yyy.eee (example : jack@altern.org)'; -$lang['mail_webmaster'] = 'Webmaster mail adress'; -$lang['mail_webmaster_info'] = 'Visitors will be able to contact site administrator with this mail'; -$lang['reg_err_mail_address'] = 'e-mail address refused, it must be like name@server.com'; $lang['install_webmaster'] = 'Webmaster login'; $lang['install_webmaster_info'] = 'It will be shown to the visitors. It is necessary for website administration'; @@ -72,6 +68,6 @@ Once this file deleted , follow this instructions :