Файл: CMS/core/modules/reg.php
Строк: 188
<?php
if (!defined('CMS')) { die('Access Denied!'); }
if ($config['allow_reg'] == 1) {
if (!$is_logged) {
if (empty($_SESSION[SP]['reg_user'])) {
if (!empty($_POST['submit'])) {
$logs = !empty($_POST['logs']) ? check($_POST['logs']) : '';
$pass_one = !empty($_POST['pass_one']) ? check($_POST['pass_one']) : '';
$pass_two = !empty($_POST['pass_two']) ? check($_POST['pass_two']) : '';
$code = !empty($_POST['code']) ? (int) $_POST['code'] : '';
$gender = !empty($_POST['gender']) ? num($_POST['gender']) : '';
$error = '';
$_SESSION['captcha_key'] = !empty($_SESSION['captcha_key']) ? $_SESSION['captcha_key'] : NULL;
$_SESSION['captcha_failures'] = !empty($_SESSION['captcha_failures']) ? $_SESSION['captcha_failures'] : 0;
if (empty($config['allow_regmail'])) {
$email = !empty($_POST['email']) ? cms_tolower(check($_POST['email'])) : '';
}
else $email = '';
if (!empty($_SESSION['captcha_key']) && ($_SESSION['captcha_key'] == $code)) {
if (preg_match('|^[a-z0-9-]+$|i', $logs)) {
if (preg_match('|^[a-z0-9-]+$|i', $pass_one)) {
if (preg_match('#^([a-z0-9_-.])+@([a-z0-9_-.])+(.([a-z0-9])+)+$#', $email) || $config['allow_regmail'] == 1) {
if (strlen($logs) <= 20 && strlen($pass_one) <= 20) {
if (strlen($logs) >= 3 && strlen($pass_one) >= 3) {
if ($pass_one == $pass_two) {
if ($logs != $pass_one) {
if (!ctype_digit($pass_one)) {
if (substr_count($logs, '-') < 3) {
if ($gender == 1 || $gender == 2) {
$reglogin = $db->selectCell("SELECT `users_id` FROM ?_users
WHERE LOWER(`users_login`) = ? LIMIT 1;", cms_tolower($logs));
if (empty($reglogin)) {
$regnick = $db->selectCell("SELECT `users_id` FROM ?_users
WHERE LOWER(`users_nickname`) = ? LIMIT 1;", cms_tolower($logs));
if (empty($regnick)) {
$black = (int) $db->selectCell("SELECT `id` FROM ?_users_black_list
WHERE (LOWER(`login`) = ? OR LOWER(`email`) = ?)
LIMIT 1;", cms_tolower($logs), $email);
if (empty($black)) {
$regmail = $db->selectCell("SELECT `users_id` FROM ?_users
WHERE LOWER(`users_email`) = ? LIMIT 1;", $email);
if (empty($regmail) || $config['allow_regmail'] == 1) {
//$_SESSION[SP]['reg_user'] = 1;
$_SESSION['captcha_key'] = NULL;
$_SESSION['captcha_failures'] = 0;
$registration_key = '';
if ($config['allow_regmail'] == 1 && $config['allow_regkeys'] == 1) {
$config['regkeys'] = 0;
}
$auto = $config['site_url'] . '/';
$auto .= gen_uri('login', '', 'login=' . $logs . '&pass=' . $pass_one);
// Уведомление в приват
$textpriv = 'Добро пожаловать, ' . $logs . '!<br />Теперь Вы полноправный пользователь сайта ' . $config['site_name'] . ', сохраните ваш логин и пароль в надежном месте, они пригодятся вам для входа на наш сайт.<br />Перед посещением сайта рекомендуем вам ознакомиться с [url=' . $config['site_url'] . '/' . gen_uri('rules') . ']правилами сайта[/url], это поможет Вам избежать неприятных ситуаций.<br />Желаем приятно провести время.<br />С уважением, администрация сайта ' . $config['site_name'];
// Уведомление о регистрации на E-mail
$regmail = "Добро пожаловать, " . $logs . " nТеперь вы зарегистрированный пользователь сайта " . $config['site_url'] . ", сохраните ваш логин и пароль в надежном месте, они вам еще пригодятся. nВаши данные для входа на сайт nЛогин: " . $logs . " nПароль: " . $pass_one . " nnСсылка для автоматического входа на сайт: n" . $config['site_url'] . "/" . gen_uri('login', '', 'login=' . $logs . '&pass=' . $pass_one) . " nНадеемся вам понравится на нашем портале! nС уважением администрация сайта " . $config['site_name'] . "nЕсли это письмо попало к вам по ошибке, то просто проигнорируйте его.n";
if ($config['allow_regkeys'] == 1) {
$registration_key = random_string(9);
echo '<div class="b"><b><span style="color:#ff0000">Внимание! После входа на сайт, вам будет необходимо ввести мастер-ключ для подтверждения регистрации<br />';
echo 'Мастер-ключ был выслан вам на почтовый ящик: ' . $email . '</span></b><br /></div>';
$regmail .= "nnВнимание! nДля подтверждения регистрации необходимо в течении 24 часов ввести мастер-ключ! nВаш мастер-ключ: " . $registration_key . " nВведите его после авторизации на сайте nИли перейдите по прямой ссылке: nn" . $config['site_url'] . "/" . gen_uri('key', '', 'key=' . $registration_key) . " nnЕсли в течении 24 часов вы не подтвердите регистрацию, ваш профиль будет автоматически удален";
}
if ($config['allow_regkeys'] == 2) {
$regmail .= "nnВнимание! nВаш аккаунт будет активирован только после проверки администрацией! nПроверить статус активации вы сможете после авторизации на сайте";
echo '<div class="b"><b><span style="color:#ff0000">Внимание! Ваш аккаунт будет активирован только после проверки администрацией!</span></b><br /></div>';
}
$id_user = (int) $db->query("INSERT INTO ?_users SET `users_login` = ?, `users_pass` = ?, `users_email` = ?, `users_joined` = ?, `users_level` = ?, `users_gender` = ?, `users_newprivat` = ?, `users_themes` = ?, `users_point` = ?, `users_money` = ?, `users_avatar` = ?, `users_confirmreg` = ?, `users_confirmregkey` = ?, `users_uploads` = ?",
$logs, md5(md5($pass_one)), $email, SITE_TIME, 107, $gender, 1, $config['themes'], $config['reg_add_score'], $config['reg_add_money'], '', $config['allow_regkeys'], $registration_key, $config['max_users_files']);
$db->query("INSERT INTO ?_users_inbox (`inbox_user`, `inbox_author`, `inbox_text`, `inbox_time`) VALUES (?, ?, ?, ?);", $logs, $config['nickname'], $textpriv, SITE_TIME);
if (empty($config['allow_regmail'])) {
$send = SendMail($email, $logs, 'Регистрация на сайте ' . $config['site_name'], $regmail);
if ($send <> 'ok') $inSes->addMessage($send);
}
show_header('Регистрация');
echo '<div class="b">';
echo 'Вы удачно зарегистрированы!<br /><br />';
echo 'Ваш Логин: <b>' . $logs . '</b><br />';
echo 'Ваш Пароль: <b>' . $pass_one . '</b><br /><br />';
echo 'Теперь вы можете войти<br /><br />';
echo icon('open.gif');
echo ' <a href="' . $auto . '">Вход на сайт</a><br /></div>';
echo '<div class="b">';
echo 'Вы можете сделать закладку для быстрого входа:<br />';
echo '<span style="color:#ff0000">' . $auto . '</span><br /><br />';
echo 'Cкопировать: <br /><input name="avtovhod" size="60" value="' . $auto . '"/><br /></div>';
show_footer();
} else {
$error = 'Ошибка! E-mail указанный вами уже используется в системе, введите другой адрес!';
}
} else {
$error = 'Ошибка! Выбранный вами логин или email занесен в черный список!';
}
} else {
$error = 'Ошибка! Выбранный вами логин используется кем-то в качестве ника!';
}
} else {
$error = 'Ошибка! Пользователь с данным логином уже зарегистрирован!';
}
} else {
$error = 'Ошибка! Вы не указали ваш пол!';
}
} else {
$error = 'Ошибка! Запрещено использовать в логине слишком много дефисов!';
}
} else {
$error = 'Ошибка! Запрещен пароль состоящий только из цифр, используйте буквы!';
}
} else {
$error = 'Ошибка! Пароль и логин должны отличаться друг от друга!';
}
} else {
$error = 'Ошибка! Веденные пароли отличаются друг от друга!';
}
} else {
$error = 'Ошибка! Слишком короткий логин или пароль (От 3 до 20 символов)!';
}
} else {
$error = 'Ошибка! Слишком длинный логин или пароль (От 3 до 20 символов)!';
}
} else {
$error = 'Ошибка! Вы ввели неверный адрес e-mail, необходим формат name@site.domen!';
}
} else {
$error = 'Ошибка! Недопустимые символы в пароле. Разрешены знаки латинского алфавита, цифры и дефис!';
}
} else {
$error = 'Ошибка! Недопустимые символы в логине. Разрешены знаки латинского алфавита, цифры и дефис!';
}
} else {
if ( ++$_SESSION['captcha_failures'] == 3 ) {
$error = 'Ошибка! Вы ввели несколько раз подряд неверный код с картинки. Сгенерирован новый код.';
$_SESSION['captcha_key'] = NULL;
$_SESSION['captcha_failures'] = 0;
}
else $error = 'Ошибка! Проверочное число не совпало с данными на картинке!';
}
if (!empty($error)) $inSes->addMessage($error, 'error');
}
/* Главная страница */
show_header('Регистрация');
echo '<div class="b">';
echo 'Регистрация на сайте означает что вы ознакомлены и согласны с ';
echo '<a title="Правила сайта" href="' . gen_uri('rules') . '"><b>правилами</b></a> нашего сайта<br />';
echo 'Длина логина или пароля должна быть от 3 до 25 символов<br />';
echo 'В полях логин и пароль разрешено использовать только знаки латинского алфавита и цифры, а также знак дефис!<br /></div>';
if ($config['allow_regkeys'] == 1 && empty($config['allow_regmail'])) {
echo '<div class="b"><span style="color:#ff0000">Включено подтверждение регистрации! ';
echo 'Вам на почтовый ящик будет выслан мастер-ключ, который необходим для подтверждения регистрации!</span><br /></div>';
}
if ($config['allow_regkeys'] == 2) {
echo '<div class="b"><span style="color:#ff0000">Включена модерация регистрации! ';
echo 'Ваш аккаунт будет активирован только после проверки администрацией!</span><br /></div>';
}
if ($config['allow_karantin'] > 0) {
echo '<div class="b"><span style="color:#ff0000">Включен карантин! ';
echo 'Новые пользователи не могут писать сообщения в течении ';
echo round($config['allow_karantin'] / 3600) . ' час. после регистрации!</span><br /></div>';
}
$form = new cmsForm(gen_uri('reg'), 'post', ' name="form"');
$form->addText(blink('*') . 'Логин:', 'logs', request('logs'), ' maxlength="20"');
$form->addText(blink('*') . 'Пароль:', 'pass_one', request('pass_one'), ' maxlength="20"');
$form->addText(blink('*') . 'Повторите пароль:', 'pass_two', request('pass_two'), ' maxlength="20"');
if (empty($config['allow_regmail'])) {
$form->addText(blink('*') . 'Ваш e-mail:', 'email', request('email'), ' maxlength="70"');
}
$form->addSelect(blink('*') . 'Пол:', 'gender', '', array(1 => 'Мужской', 2 => 'Женский'));
$form->addCode('<br />');
$form->addCaptcha(blink('*') . 'Проверочный код:', 'code', gen_uri('reg', '', RND));
echo $form->Submit('Регистрация', 'submit');
unset($form);
echo '<div class="b">Обновите страницу если вы не видите проверочный код!<br />';
echo 'Все поля обязательны для заполнения, более полную информацию о себе вы можете добавить в своем профиле после регистрации<br />';
echo 'Указывайте верный е-мэйл, на него будут высланы регистрационные данные.<br /></div>';
show_footer();
}
else {
$inSes->addMessage('Ошибка! Вы уже регистрировались. Запрещено регистрировать несколько аккаунтов!');
gen_red('index');
}
}
else {
$inSes->addMessage('Вы уже регистрировались, нельзя регистрироваться несколько раз!');
gen_red('index');
}
}
else {
$inSes->addMessage('Регистрация временно приостановлена, пожалуйста зайдите позже!');
gen_red('index');
}
?>