File size: 6.25Kb
<?php
// by Mike O. (mides), coolcms.org
$title = 'Регистрация';
require_once '../includes/sys.php';
require_once '../includes/header.php';
if (isset($u['id'])) {
redirect(HTTPHOME);
}
if (empty($config['regoff'])) {
switch ($act) {
default:
tp('Регистрация');
echo '<div class="body">';
if ($config['email_ver']) {
echo '<b>Включено подтверждение по E-mail!</b><br />';
}
if ($config['activation']) {
echo '<b>Включена активация администратором!</b><br />';
}
echo '<form name="form" action="?act=do" method="post">
Логин(min3, max12, a-z, 0-9):<br /><input name="username" type="text" maxlength="12" size="12" /><br />
Пароль(min3, max20, a-z, 0-9):<br /><input name="password" type="text" maxlength="20" /><br />
E-mail(max50):<br /><input name="email" type="text" maxlength="50" /><br />
Провер. код:<br />
<img src="../images/code.php" alt="" /><br />
<input name="code" maxlength="5" /><br />
Я согласен(а) с <a href="info.php?act=rules">правилами</a><br />
<input type="submit" value="Регистрация"/>
</form>
</div>';
break;
case 'do':
$username = check($_POST['username']);
$password = check($_POST['password']);
$email = check($_POST['email']);
$code = abs(intval($_POST['code']));
# checking if there's a user with such a username
$query = mysql_query("SELECT COUNT(`id`) FROM `users` WHERE `username` = '$username'");
if (mysql_result($query, 0) > 0) {
error('Этот логин уже занят.');
nav('?');
break;
}
# checking if
if (!preg_match('|^[a-z0-9\-]+$|i', $username)) {
error('Логин может состоять только из букв английского алфавита и цифр.');
nav('?');
break;
}
# проверяем длину логина
if (strlen($username) < 3 or strlen($username) > 12) {
error('Логин должен быть не меньше 3-х и не больше 12-и символов.');
nav('?');
break;
}
# проверка пароля
if (!preg_match('|^[a-z0-9\-]+$|i', $password)) {
error('Пароль может состоять только из букв английского алфавита и цифр.');
nav('?');
break;
}
# проверяем длину пароля
if (strlen($password) < 3 or strlen($password) > 20) {
error('Пароль должен быть не меньше 3-х и не больше 20-и символов.');
nav('?');
break;
}
# проверяем e-mail;
if (!preg_match('/[0-9a-z_\-]+@[0-9a-z_\-^\.]+\.[a-z]{2,6}/i', $email)) {
error('E-mail введён не верно.');
nav('?');
break;
}
# проверяем, правильно ли введен защитный код
if ($_SESSION['code'] != $code or empty($code)) {
error('Вы ввели неверный проверочный код.');
nav('?');
break;
}
$ok = !empty($config['activation']) ? 0 : 1;
$email_ver = !empty($config['email_ver']) ? generate(10) : 1;
mysql_query("INSERT INTO `users` SET `username` = '$username', `password` = '".md5(md5($password))."', `email` = '$email', `regtime` = '".TIME."', `style` = '$config[style]', `language` = '$config[language]', `onpage` = '$config[onpage]', `email_ver` = '$email_ver', `ok` = '$ok'") or die(mysql_error());
$userid = mysql_insert_id();
tp($lang['info']);
echo '<div class="body">Вы успешно зарегистрированы.<br />
Логин: '.$username.'<br />
Пароль: '.$password.'<br />
Автологин:<br /><input name="auto" type="text" value="'.HTTPHOME.'/a.php?l='.$username.'&p='.$password.'" /><br />
<a href="../a.php?l='.$username.'&p='.$password.'">Ввойти по автологину</a>';
if ($email_ver != 1) {
$email_ver_text = '---
Вам необходимо перейти по ссылке ниже для подтверждения вашего E-mail.
'.HTTPHOME.'/other/profile.php?act=email_ver&id='.$userid.'&ver='.$email_ver;
echo '<hr /><b>Включено подтверждение по E-mail.</b><br /> На вашу почту отправлено письмо со ссылкой, по которой необходимо перейти чтобы подтвердить ваш E-mail.';
}
if (empty($ok)) {
echo '<hr /><b>Включена активация аккаунтов.</b><br /> Дождитесь проверки вашего аккаунта администратором.';
}
echo '</div>';
// sending e-mail
$email_a = 'admin@&'.HOME;
$message = 'Уважаемый пользователь!
Вы зарегистрировались на '.HOME.', данные для доступа:
Логин: '.$username.'
Пароль: '.$password.'
E-mail: '.$email.'
Автологин: '.HTTPHOME.'/a.php?l='.$username.'&p='.$password.'
'.$email_ver_text.'
С уважением, '.HOME;
mail($email, '=?utf-8?B?'.base64_encode('Регистрация на '.HOME).'?=', $message, "From: $email_a\r\nContent-type: text/plain; charset=utf-8;\r\nX-Mailer: PHP;");
unset($_SESSION['code']);
break;
}
} else {
error($lang['regoff']);
}
require_once '../includes/tail.php';
?>