Wie man E-Mail-Adresse zu machen wird nicht wiederholt?
Hier ist mein registr.php:
Code:
<?php if (!defined('access')) {die("Die gesuchte Ressource wurde entfernt oder umbenannt, oder sie steht vorübergehend nicht zur Verfügung.");} ?>
<p class="page_title"><?php echo $_LANG['regist_siteTitle']; ?></p>
<?php
if(isset($_POST['registSubmit'])) {
$account = cleanSqlInput($_POST['registAccountID']);
$pass1 = cleanSqlInput($_POST['registPassword']);
$pass2 = cleanSqlInput($_POST['registPasswordRepeat']);
$email = cleanSqlInput($_POST['registMail']);
$email2 = cleanSqlInput($_POST['registMailRepeat']);
$provider = preg_replace("^(.*?)@(.*?)^", "$2", $email);
$gefra = cleanSqlInput($_POST['registSecretQuestion']);
$geant = cleanSqlInput($_POST['registSecretAnswer']);
$birthday = cleanSqlInput($_POST['registBirthday']);
$md5pw = md5($_CONFIG['allg_svr_salt'].$pass1);
$strOutputErrorArray = array();
$accountcheck1 = @odbc_num_rows(@odbc_exec($odbc_connect, 'SELECT [account] FROM [' . $_CONFIG['db_databases']['acc'] . '].[dbo].[ACCOUNT_TBL] WHERE account = \''.$account.'\''));
$accountcheck2 = @odbc_num_rows(@odbc_exec($odbc_connect, 'SELECT [account] FROM [' . $_CONFIG['db_databases']['web'] . '].[dbo].[VALIDATE] WHERE [type] = 0 AND [account] = \''.$account.'\''));
if(!$_CONFIG['registration_enabled']) {
$strOutputErrorArray[] = $_LANG['error_registration_disabled'];
}
if(isSpamming($_POST['inputCheckTimestamp'], $_POST['inputCheckKey'], $_SESSION['inputCheckKey'])) {
$strOutputErrorArray[] = $_LANG['error_spam'];
}
if(empty($account) or empty($pass1) or empty($pass2) or empty($email) or empty($email2) or empty($gefra) or empty($geant) or empty($birthday)) {
$strOutputErrorArray[] = $_LANG['error_fill_in_all_fields'];
}
if(!isset($_POST['registCheckbox'])) {
$strOutputErrorArray[] = $_LANG['error_confirm_reading_rules'];
}
if($accountcheck1 > 0 OR $accountcheck2 > 0) {
$strOutputErrorArray[] = $_LANG['error_accountname_is_taken'];
}
if($emailcheck1 > 0 OR $emailcheck2 > 0) {
$strOutputErrorArray[] = $_LANG['error_email_is_taken'];
}
if((strlen($account) > 16) || (strlen($account) < 3)) {
$strOutputErrorArray[] = $_LANG['error_account_length'];
}
if ($account != preg_replace ("/[^A-Za-z0-9]/", "", $account)) {
$strOutputErrorArray[] = $_LANG['error_no_special_characters_account'];
}
if((strlen($pass1) > 16) || (strlen($pass1) < 6)) {
$strOutputErrorArray[] = $_LANG['error_password_length'];
}
if($pass1 != $pass2) {
$strOutputErrorArray[] = $_LANG['error_passwords_indistinguishable'];
}
if($geant != preg_replace('/[^A-Za-z0-9 ]/', '', $geant)) {
$strOutputErrorArray[] = $_LANG['error_no_special_characters_secret_answer'];
}
if(strtolower($email) != strtolower($email2)) {
$strOutputErrorArray[] = $_LANG['error_mails_indistinguishable'];
}
if(!preg_match('/^[a-zA-Z0-9-_.]+@[a-zA-Z0-9-_.]+\.[a-zA-Z]{2,4}$/', $email)) {
$strOutputErrorArray[] = $_LANG['error_mail_must_be_valid'];
}
if(in_array($provider, $_CONFIG['web_mail_provider'])) {
$strOutputErrorArray[] = $_LANG['error_spam_provider'];
}
if(!strtotime($birthday)) {
$strOutputErrorArray[] = $_LANG['error_valid_birthday'];
}
if(count($strOutputErrorArray) > 0) {
echo createMessage($strOutputErrorArray, 'fail');
}
else {
if($_CONFIG['registration_verify_mail_enabled'] AND $_CONFIG['web_mailserver_enabled']) {
$key = random_string();
if(
mailRegistration($email, $account, $pass1, $_CONFIG['allg_secretquestions'][$gefra], $geant, date($_CONFIG['web_date_format']['date'], strtotime($birthday)), $key)
AND
@odbc_exec($odbc_connect, '
INSERT INTO [' . $_CONFIG['db_databases']['web'] . '].[dbo].[VALIDATE] (
[key],
[type],
[account],
[email],
[timestamp],
[fieldAlfa],
[fieldBravo],
[fieldCharlie],
[fieldDelta],
[fieldEcho],
[fieldFoxtrot]
) VALUES (
\'' . $key . '\',
0,
\''.$account.'\',
\''.time().'\',
\''.$email.'\',
\''.$md5pw.'\',
\''.md5($_CONFIG['security_secretAnswerSalt'].$geant).'\',
\''.date($_CONFIG['web_date_format']['date'], strtotime($birthday)).'\',
'.$gefra.',
\''.$_SERVER['REMOTE_ADDR'].'\'
)
')) {
echo createMessage($_LANG['success_registration_mail'], 'success');
}
else {
echo createMessage($_LANG['error_could_not_register'], 'fail');
}
}
else {
if(odbc_exec($odbc_connect, '
EXEC [' . $_CONFIG['db_databases']['acc'] . '].[dbo].[usp_createAccount] @account=\'' . $account . '\', @pw=\''.$md5pw.'\', @email=\''.$email.'\', @gefra=\''.$gefra.'\', @geant=\''.md5($_CONFIG['security_secretAnswerSalt'].$geant).'\', @birthday=\''.date($_CONFIG['web_date_format']['date'], strtotime($birthday)).'\', @ip = \'' . $_SERVER['REMOTE_ADDR'] . '\', @lang=\'' . $_CONFIG['web_default_lang'] . '\'
')) {
$_SESSION['user'] = strtolower($account);
$_SESSION['lang'] = $_CONFIG['web_default_lang'];
echo createMessage($_LANG['success_registration'], 'success');
}
else {
echo createMessage($_LANG['error_could_not_register'], 'fail');
}
}
}
}
else {
if($_CONFIG['registration_enabled']) {
if($_CONFIG['registration_verify_mail_enabled']) {
echo createMessage($_LANG['notify_registration'], 'hint');
}
}
else {
echo createMessage($_LANG['error_registration_disabled'], 'fail');
}
}
?>
<form method="post"><br />
<input type="hidden" name="inputCheckTimestamp" value="<?php echo time();?>" />
<input type="hidden" name="inputCheckKey" value="<?php echo random_string();?>" />
<fieldset>
<legend><?php echo $_LANG['regist_account_information_subTitle']; ?></legend>
<input type="text" name="registAccountID" id="registAccountID" maxlength="16" placeholder="<?php echo $_LANG['account']; ?>" required="required"/><label class="labelRegistration" for="registAccountID"><?php echo $_LANG['account']; ?>:</label><br />
<input type="password" name="registPassword" id="registPassword" placeholder="<?php echo $_LANG['password']; ?>" required="required"/> <input type="password" name="registPasswordRepeat" id="registPasswordRepeat" class="password" placeholder="<?php echo $_LANG['password_repeat']; ?>" required="required"/><label class="labelRegistration" for="registPassword"><?php echo $_LANG['password']; ?>:</label><br />
</fieldset>
<br />
<fieldset>
<legend><?php echo $_LANG['regist_security_subTitle']; ?></legend>
<input type="email" name="registMail" id="registMail" class="email" placeholder="
" required="required"/> <input type="email" name="registMailRepeat" id="registMailRepeat" class="email" placeholder="<?php echo $_LANG['mail_repeat']; ?>" required="required"/><label class="labelRegistration" for="registMail"><?php echo $_LANG['mail']; ?>:</label>
<input type="text" name="registBirthday" id="registBirthday" class="birthday" placeholder="14.05.1993" required="required"/><label class="labelRegistration" for="registBirthday"><?php echo $_LANG['birthday']; ?>:</label><br />
<select name="registSecretQuestion" id="registSecretQuestion" class="frage" required="required">
<option value="" selected="selected"></option>
<?php
foreach($_CONFIG['allg_secretquestions'] as $id => $frage) {
echo '<option value="'.$id.'" >'.$frage.'</option>';
}
?>
</select><label class="labelRegistration" for="registSecretQuestion"><?php echo $_LANG['secret_question']; ?>:</label><br />
<input type="text" name="registSecretAnswer" id="registSecretAnswer" class="antwort" placeholder="<?php echo $_LANG['secret_answer']; ?>" required="required"/><label class="labelRegistration" for="registSecretAnswer"><?php echo $_LANG['secret_answer']; ?>:</label>
</fieldset>
<br />
<fieldset>
<legend><?php echo $_LANG['regist_rules_subTitle']; ?></legend>
<input type="checkbox" name="registCheckbox" id="registCheckbox" style="margin:14px 10px;" required="required"/><label style="float:left;" for="registCheckbox"><?php echo $_LANG['regist_read_confirmation']; ?> </label><br /><br style="clear:both;"/>
</fieldset>
<input type="submit" name="registSubmit" value="<?php echo $_LANG['button_send_registration']; ?>" class="button_235" style="margin:10px 0px 10px 190px;" />
</form>






