Вход Регистрация
Файл: pages/reg.php
Строк: 149
<?php

$subdomain_theme_redirect_disable 
true// принудительное отключение редиректа на поддомены, соответствующие типу браузера
include_once '../sys/inc/start.php';
$doc = new document();
$doc->title __('Регистрация');

if (
$user->group) {
    
$doc->access_denied(__('Вы уже зарегистрированы'));
}

if (!
$dcms->reg_open) {
    
$doc->access_denied(__('Регистрация временно закрыта'));
}
// пригласительный
$inv = &$_SESSION['reg']['invite'];
if (!
$inv && isset($_GET['invite']) && $_GET['invite']) {
    
$q mysql_query("SELECT * FROM `invations` WHERE `code` = '" my_esc($_GET['invite']) . "' AND `id_invite` IS NULL AND `email` IS NOT NULL LIMIT 1");
    
// echo mysql_error();exit;
    
if (mysql_num_rows($q)) {
        
// $doc->msg('Пригласительный учтен');
        
$inv mysql_fetch_assoc($q);
        
mysql_query("UPDATE `invations` SET `code` = null WHERE `id` = '$inv[id]' LIMIT 1");
    } else {
        
$doc->err(__('Пригласительный недействителен'));
    }
}

if (!isset(
$inv))
    
$inv false;

if (!
$inv && $dcms->reg_with_invite) {
    
$doc->access_denied(__('Регистрация возможна только по приглашению'));
}

$step = &$_SESSION['reg']['step'];
if (!isset(
$step)) {
    
$step $dcms->reg_with_rules 1;
}
$login = &$_SESSION['reg']['login'];
// принимаем правила
if ($step == && isset($_GET['rules'])) {
    if (
$_POST['ok']) {
        
$step 1;
        
$doc->msg(__('Очень хорошо, надеемся на их соблюдение'));
    } elseif (
$_POST['no']) {
        
$doc->err(__('Для продолжения регистрации необходимо принять правила сайта'));
    }
}
// выбираем ник
if ($step == && isset($_GET['nick']) && isset($_POST['login'])) {
    if (
is_valid::nick($_POST['login'])) {
        
$login $_POST['login'];
        if (!
mysql_result(mysql_query("SELECT COUNT(*) FROM `users` WHERE `login` = '" my_esc($login) . "'"), 0)) {
            if (
$_POST['login'] != my_esc($_POST['login']))
                
$doc->msg(__('В нике содержатся запрещенные символы'));
            else {
                
$step 2;
                
$_SESSION['reg']['login'] = $_POST['login'];
                
$doc->msg(__('Ник может быть успешно зарегистрирован'));
            }
        } else {
            
$doc->err(__('Ник занят другим пользователем'));
        }
    } else {
        
$doc->err(__('Недопустимый ник'));
    }
}
// выбираем ник
if ($step == && isset($_GET['final']) && isset($_POST['sex'])) {
    
$sex $_POST['sex'] ? 0;

    if (empty(
$_POST['captcha']) || empty($_POST['captcha_session']) || !captcha::check($_POST['captcha'], $_POST['captcha_session'])) {
        
$doc->err(__('Проверочное число введено неверно'));
    } elseif (
$dcms->reg_with_mail && !$inv) {
        if (empty(
$_POST['mail'])) {
            
$doc->err(__('Необходимо указать E-mail'));
        } elseif (!
is_valid::mail($_POST['mail'])) {
            
$doc->err(__('Указан не корректный E-mail'));
        } elseif (
mysql_result(mysql_query("SELECT COUNT(*) FROM `users` WHERE `reg_mail` = '" my_esc($_POST['mail']) . "'"), 0)) {
            
$doc->err(__('Пользователь с таким e-mail уже зарегистрирован'));
        } elseif (empty(
$_POST['password'])) {
            
$doc->err(__('Необходимо указать пароль'));
        } elseif (empty(
$_POST['password_retry'])) {
            
$doc->err(__('Необходимо подтвердить пароль'));
        } elseif (
$_POST['password_retry'] != $_POST['password']) {
            
$doc->err(__('Введенные пароли не совпадают'));
        } elseif (!
is_valid::password($_POST['password'])) {
            
$doc->err(__('Не корректный пароль'));
        } else {
            
$a_code md5(passgen());

            
mysql_query("INSERT INTO `users` (`reg_date`, `login`, `password`, `sex`, `a_code`, `reg_mail`)
values('" 
TIME "', '" my_esc($_SESSION['reg']['login']) . "', '" crypt::hash($_POST['password'], $dcms->salt) . "', '$sex', '$a_code', '" my_esc($_POST['mail']) . "')");
            
$id_user mysql_insert_id();
            if (
$id_user && is_numeric($id_user)) {


                if (
$susp is_valid::suspicion($inv['email'] . ' ' $_SESSION['reg']['login'])) {
                    
// подозрительный e-mail или логин
                    
mysql_query("INSERT INTO `users_suspicion` (`id_user`, `text`) VALUES ('$id_user', '" my_esc($susp) . "')");
                    
$dcms->distribution("Пользователь [user]{$id_user}[/user] сочтен подозрительным, так как в нике или адресе email была обнаружена несвязная комбинация символов: {$susp}n[url=/dpanel/users.suspicious.php]Список подозрительных пользователей[/url]"4);
                }


                
$t = new design();
                
$t->assign('title'__('Успешная регистрация'));
                
$t->assign('login'$_SESSION['reg']['login']);
                
$t->assign('password'$_POST['password']);
                
$t->assign('site'$dcms->sitename);
                
$t->assign('url''http://' $_SERVER['HTTP_HOST'] . '/activation.php?id=' $id_user '&amp;code=' $a_code . (isset($_GET['return']) ? '&amp;return=' urlencode($_GET['return']) : null));
                if (
mail::send($_POST['mail'], 'Регистрация'$t->fetch('file:' '/sys/templates/mail.activation.tpl'))) {
                    
$step 3;
                    
$doc->msg(__('На Ваш E-mail отправлено письмо с ссылкой для активации аккаунта'));
                } else
                    
$doc->err(__('Ошибка при отправке email, попробуйте позже'));
            } else {
                
$doc->err(__('Ошибка при регистрации. Попробуйте позже'));
                
$step 1;
            }
        }
    } elseif (
$inv) {
        if (empty(
$_POST['password']))
            
$doc->err(__('Необходимо указать пароль'));
        elseif (!isset(
$_POST['password_retry']))
            
$doc->err(__('Необходимо подтвердить пароль'));
        elseif (
$_POST['password_retry'] != $_POST['password'])
            
$doc->err(__('Введенные пароли не совпадают'));
        elseif (!
is_valid::password($_POST['password']))
            
$doc->err(__('Не корректный пароль'));
        elseif (
mysql_result(mysql_query("SELECT COUNT(*) FROM `users` WHERE `reg_mail` = '" my_esc($inv['email']) . "'"), 0))
            
$doc->err(__('Пользователь с таким e-mail уже зарегистрирован'));
        else {
            
mysql_query("INSERT INTO `users` (`reg_date`, `login`, `password`, `sex`, `reg_mail`)
values('" 
TIME "', '" my_esc($_SESSION['reg']['login']) . "', '" crypt::hash($_POST['password'], $dcms->salt) . "', '$sex', '" my_esc($inv['email']) . "')");
            
$id_user mysql_insert_id();


            if (
$id_user && is_numeric($id_user)) {

                if (
$susp is_valid::suspicion($inv['email'] . ' ' $_SESSION['reg']['login'])) {
                    
// подозрительный e-mail или логин
                    
mysql_query("INSERT INTO `users_suspicion` (`id_user`, `text`) VALUES ('$id_user', '" my_esc($susp) . "')");
                    
$dcms->distribution("Пользователь [user]{$id_user}[/user] сочтен подозрительным, так как в нике или адресе email была обнаружена несвязная комбинация символов: {$susp}n[url=/dpanel/users.suspicious.php]Список подозрительных пользователей[/url]"4);
                }



                
mysql_query("UPDATE `invations` SET `id_invite` = '$id_user', `time_reg` = '" TIME "' WHERE `id` = '$inv[id]' LIMIT 1");
                
mysql_query("UPDATE `users` SET `balls` = `balls` * '1.1' WHERE `id` = '$inv[id_user]' LIMIT 1");
                
$step 3;
            }
        }
    } else {
        
mysql_query("INSERT INTO `users` (`reg_date`, `login`, `password`, `sex`) values('" TIME "', '" my_esc($_SESSION['reg']['login']) . "', '" crypt::hash($_POST['password'], $dcms->salt) . "', '$sex')");

        
$id_user mysql_insert_id();
        if (
$id_user && is_numeric($id_user)) {

            if (
$susp is_valid::suspicion($_SESSION['reg']['login'])) {
                
// подозрительный логин
                
mysql_query("INSERT INTO `users_suspicion` (`id_user`, `text`) VALUES ('$id_user', '" my_esc($susp) . "')");
                
$dcms->distribution("Пользователь [user]{$id_user}[/user] сочтен подозрительным, так как в нике была обнаружена несвязная комбинация символов: {$susp}n[url=/dpanel/users.suspicious.php]Список подозрительных пользователей[/url]"4);
            }


            
$step 3;
        } else {
            
$doc->err(__('Ошибка при регистрации. Попробуйте позже'));
            
$step 1;
        }
    }
}

if (
$step == 3) {
    
$doc->msg(__('Вы успешно зарегистрированы'));

    if (
$dcms->reg_with_mail && !$inv) {
        echo 
__("На ваш E-mail отправлено письмо с ссылкой для активации аккаунта");
    } else {
        echo 
__("Теперь Вы можете <a href='%s'>Авторизоваться</a>"'/login.php' . (isset($_GET['return']) ? '?return=' urlencode($_GET['return']) : null));
    }

    unset(
$_SESSION['reg']);
    exit;
}

if (
$step == 2) {
    
$doc->title __('Завершение регистрации'); // заголовок страницы


    
$form = new form('/reg.php?final&amp;' passgen() . (isset($_GET['return']) ? '&amp;return=' urlencode($_GET['return']) : null));
    
$form->bbcode(__('Ваш ник: %s''[b]' $login '[/b]'));
    
$form->password('password'__('Пароль') . ' [6-32]');
    
$form->password('password_retry'__('Повторите пароль'));
    
$form->select('sex'__('Ваш пол'), array(array(1__('Мужской')), array(0__('Женский'))));    
    if (
$dcms->reg_with_mail && !$inv) {
        
$form->text('mail'__('Ваш E-mail') . '*');
        
$form->bbcode('* ' __('На Ваш E-mail придет письмо с ссылкой для активации аккаунта'));
    }
    
$form->captcha();
    
$form->button(__('Зарегистрироваться'), 'post');
    
$form->display();
    exit;
}

if (
$step == 1) {
    
$doc->title __('Подбор ника'); // заголовок страницы

    
$form = new form('/reg.php?nick&amp;' passgen() . (isset($_GET['return']) ? '&amp;return=' urlencode($_GET['return']) : null));
    
$form->text('login'__('Выберите ник') . ' [A-zА-я0-9 -_]');
    
$form->bbcode('- ' __('Сочетание русского и английского алфавитов запрещено'));
    
$form->bbcode('- ' __('Использование пробелов вначале и конце строк запрещено'));
    
$form->bbcode('- ' __('Ник не должен начинаться с цифр'));
    
$form->button(__('Продолжить'), 'post');
    
$form->display();
    exit;
}

if (
$step == 0) {
    
$doc->title __('Соглашение'); // заголовок страницы

    
$form = new form('/reg.php?rules&amp;' passgen() . (isset($_GET['return']) ? '&amp;return=' urlencode($_GET['return']) : null));
    
$form->bbcode(@file_get_contents('/sys/docs/rules.txt'));
    
$form->button(__('Принимаю'), 'ok'false);
    
$form->button(__('Не принимаю'), 'no');
    
$form->display();
    exit;
}
?>
Онлайн: 2
Реклама