Файл: user/reg.php
Строк: 185
<?php
/* DCMS Special
 * Дата последнего редактирования 18.01.2016
 * Модифицировал densnet
 */
foreach (array('start', 'compress', 'sess', 'settings', 'db_connect', 'ipua', 'fnc', 'shif') as $inc) {
    require_once "../sys/inc/$inc.php";
}
$show_all = true;
require_once H . 'sys/inc/user.php';
only_unreg();
$set['title'] = lang('Регистрация');
require_once H . 'sys/inc/thead.php';
if ($set['reg_select'] == 'close') {
    aut();
    echo "<div class='list-group-item'>Регистрация временно приостановлена<br />Попробуйте позже</div>";
    echo "<div class='list-group-item'><a href='/user/aut.php'><i class='fa fa-arrow-left fa-fw'></i> Авторизация</a></div>";
    require_once H . 'sys/inc/tfoot.php';
} elseif ($set['reg_select'] == 'open_mail' && isset($_GET['id']) && isset($_GET['activation']) && $_GET['activation'] != NULL) {
    if (mysql_result(mysql_query("SELECT COUNT(*) FROM `user` WHERE `id` = '" . intval($_GET['id']) . "' AND `activation` = '" . mysql_real_escape_string($_GET['activation']) . "'"), 0) == 1) {
        mysql_query("UPDATE `user` SET `activation` = null WHERE `id` = '" . intval($_GET['id']) . "' LIMIT 1");
        $user = mysql_fetch_assoc(mysql_query("SELECT * FROM `user` WHERE `id` = '" . intval($_GET['id']) . "' LIMIT 1"));
        mysql_query("INSERT INTO `reg_mail` (`id_user`,`mail`) VALUES ('$user[id]','$user[ank_mail]')");
        msg('Ваш аккаунт успешно активирован');
        $_SESSION['id_user'] = $user['id'];
        require_once H . 'sys/inc/tfoot.php';
    }
}
if (isset($_SESSION['step']) && $_SESSION['step'] == 1 && mysql_result(mysql_query("SELECT COUNT(*) FROM `user` WHERE `nick` = '" . $_SESSION['reg_nick'] . "'"), 0) == 0 && isset($_POST['pass1']) && $_POST['pass1'] != NULL && $_POST['pass2'] && $_POST['pass2'] != NULL) {
    if ($set['reg_select'] == 'open_mail') {
        if (!isset($_POST['ank_mail']) || $_POST['ank_mail'] == NULL) {
            $err[] = lang('Неоходимо ввести Email');
        } elseif (!preg_match('#^[A-z0-9-._]+@[A-z0-9]{2,}.[A-z]{2,4}$#ui', $_POST['ank_mail'])) {
            $err[] = lang('Неверный формат Email');
        } elseif (mysql_result(mysql_query("SELECT COUNT(*) FROM `reg_mail` WHERE `mail` = '" . mysql_real_escape_string($_POST['ank_mail']) . "'"), 0) != 0) {
            $err[] = lang('Пользователь с этим E-mail уже зарегистрирован');
        }
    }
    if (utf8_strlen($_POST['pass1']) < 6) {
        $err[] = lang('По соображениям безопасности пароль не может быть короче 6-ти символов');
    }
    if (utf8_strlen($_POST['pass1']) > 32) {
        $err[] = lang('Длина пароля превышает 32 символа');
    }
    if ($_POST['pass1'] != $_POST['pass2']) {
        $err[] = lang('Пароли не совпадают');
    }
    //Поисковое слово
    $world_set_update = $_POST['pass1'];
    //файл где ищем
    $file_default = file_get_contents(H . 'sys/txt/if_password.txt');
    //если  нету записываем
    if (stripos($file_default, $world_set_update) !== false) {
        $err[] = lang('Пароль слишком простой');
    }
    if (!isset($_SESSION['captcha']) || !isset($_POST['chislo']) || $_SESSION['captcha'] != $_POST['chislo']) {
        $err[] = lang('Неверное проверочное число');
    }
    if (!isset($err)) {
        if ($set['reg_select'] == 'open_mail') {
            $activation = md5(passgen());
            mysql_query("INSERT INTO `user` (`nick`, `pass`, `pass_time`, `date_reg`, `date_last`, `sex`, `activation`, `ank_mail`) values('" . mysql_real_escape_string($_SESSION['reg_nick']) . "', '" . shif($_POST['pass1']) . "', '$time', '$time', '$time', '" . intval($_POST['sex']) . "', '$activation', '" . mysql_real_escape_string($_POST['ank_mail']) . "')", $db);
            $id_reg = mysql_insert_id();
            $subject = ('Активация аккаунта');
            $regmail = ('Здравствуйте') . "  $_SESSION[reg_nick]<br />
" . ('Для активации Вашего аккаунта перейдите по ссылке') . ":<br />
<a href='http://$_SERVER[HTTP_HOST]/user/reg.php?id=$id_reg&activation=$activation'>http://$_SERVER[HTTP_HOST]/user/reg.php?id=" . mysql_insert_id() . "&activation=$activation</a><br />
" . ('Если аккаунт не будет активирован в течении 24 часов, он будет удален') . " <br />
" . ('С уважением, администрация сайта') . "<br />
";
            $adds = "From: "password@$_SERVER[HTTP_HOST]" <password@$_SERVER[HTTP_HOST]>n";
            $adds .= "Content-Type: text/html; charset=utf-8n";
            mail($_POST['ank_mail'], '=?utf-8?B?' . base64_encode($subject) . '?=', $regmail, $adds);
        } else {
            mysql_query("INSERT INTO `user` (`nick`, `pass`, `pass_time`, `date_reg`, `date_last`, `sex`) values('" . mysql_real_escape_string($_SESSION['reg_nick']) . "', '" . shif($_POST['pass1']) . "', '$time', '$time', '$time', '" . intval($_POST['sex']) . "')", $db);
        }
        $user = mysql_fetch_assoc(mysql_query("SELECT * FROM `user` WHERE `nick` = '" . mysql_real_escape_string($_SESSION['reg_nick']) . "' AND `pass` = '" . shif($_POST['pass1']) . "' LIMIT 1"));
        if (isset($_SESSION['http_referer'])) {
            mysql_query("INSERT INTO `user_ref` (`time`, `id_user`, `type_input`, `url`) VALUES ('$time', '$user[id]', 'reg', '" . mysql_real_escape_string($_SESSION['http_referer']) . "')");
        }
        $_SESSION['id_user'] = $user['id'];
        setcookie('id_user', $user['id'], time() + 60 * 60 * 24 * 365);
        setcookie('pass', cookie_encrypt($_POST['pass1'], $user['id']), time() + 60 * 60 * 24 * 365);
        if ($set['reg_select'] == 'open_mail') {
            msg(lang('Вам необходимо активировать Ваш аккаунт по ссылке, высланной на Email'));
        } else {
            msg(lang('Регистрация прошла успешно'));
        }
        echo "<div class='list-group-item'>";
        echo "Если Ваш браузер не поддерживает Cookie, Вы можете создать закладку для автовхода<br />";
        echo "<input type='text' class='form-control' value='http://$_SERVER[SERVER_NAME]/user/login.php?id=$user[id]&pass=" . htmlspecialchars($_POST['pass1']) . "' />";
        echo "Логин: <b>$user[nick]</b><br />";
        echo "Пароль: <b>" . htmlspecialchars($_POST['pass1']) . "</b><br />";
        echo "</div>";
        if ($set['reg_select'] == 'open_mail') {
            unset($user);
        }
        echo "<div class='list-group-item'><a href='/?umenu'><i class='fa fa-arrow-left'></i> Кабинет</a></div>";
        require_once H . 'sys/inc/tfoot.php';
    }
} elseif (isset($_POST['nick']) && $_POST['nick'] != NULL) {
    if (mysql_result(mysql_query("SELECT COUNT(*) FROM `user` WHERE `nick` = '" . mysql_real_escape_string($_POST['nick']) . "'"), 0) == 0) {
        $nick = mysql_real_escape_string($_POST['nick']);
        if (!preg_match("#^([A-z0-9-_])+$#ui", $_POST['nick'])) {
            $err[] = lang('В логине присутствуют запрещенные символы');
        }
        if (preg_match("#[a-z]+#ui", $_POST['nick']) && preg_match("#[а-я]+#ui", $_POST['nick'])) {
            $err[] = lang('Разрешается использовать символы только русского или только английского алфавита');
        }
        if (preg_match("#(^ )|( $)#ui", $_POST['nick'])) {
            $err[] = lang('Запрещено использовать пробел в начале и конце логина');
        }
        if (utf8_strlen($nick) < 3) {
            $err[] = lang('Короткий логин');
        }
        if (utf8_strlen($nick) > 32) {
            $err[] = lang('Длина логина превышает 32 символа');
        }
    } else {
        $err[] = 'Логин «' . stripcslashes(htmlspecialchars($_POST['nick'])) . '» уже зарегистрирован.<br />Выберите пожалуйста другой логин.';
    }
    if (!isset($err)) {
        $_SESSION['reg_nick'] = $nick;
        $_SESSION['step'] = 1;
    }
}
aut();
err();
if (isset($_SESSION['step']) && $_SESSION['step'] == 1) {
    echo "<form method='post' class='list-group-item' action='/user/reg.php?$passgen'>";
    $doc->Input('nick', 'Ваш логин', 32, "$_SESSION[reg_nick]");
    $doc->Button('btn btn-success btn-sm', null, null, 'Заменить');
    echo "</form>n";
    echo "<form method='post' action='/user/reg.php?$passgen' class = 'list-group-item'>n";
    echo lang('Пол') . ":<br />";
    echo "<select class='form-control' name='sex' style='width: 40%;'>";
    echo "<option value='1'>Мужской</option>";
    echo "<option value='0'>Женский</option>";
    echo "</select><br />";
    if ($set['reg_select'] == 'open_mail') {
        $doc->Input('ank_mail', 'E-mail', 50);
        echo "* Указывайте ваш реальный адрес E-mail. На него придет код для активации аккаунта.n";
    }
    $doc->Input('pass1', 'Новый пароль', 32, null, 'form-control', 'password');
    $doc->Input('pass2', 'Повторите пароль', 32, null, 'form-control', 'password');
    echo "<img src = '/captcha.php?$passgen&SESS=$sess' width='100' height='30' alt='Проверочное число' /><br />";
    echo lang('Ответ') . "<br />";
    echo "<input id='chislo' name='chislo' style='width: 30%;' length='2' type='text' value='' class='form-control'><br />";
    $doc->Button('btn btn-success btn-sm', null, null, 'Далее');
    echo "</form>";
} else {
    echo "<form method='post' class='list-group-item' action='/user/reg.php?$passgen'>n";
    $doc->Input('nick', 'Введите логин', 32);
    echo "<br />";
    $doc->Button('btn btn-success btn-sm', null, null, 'Далее');
    echo "<br /><br />";
    echo "<small>Регистрируясь, вы соглашаетесь с нашими <a href='/modules/info/rules.php'>Условиями использования</a> и подтверждаете, что ознакомились с нашей <a href='/modules/info/rules.php'>Политикой использования данных</a>, включая <a href='/modules/info/rules.php'>использование файлов «cookie»</a>.</small>";
    echo "</form>";
}
require_once H . 'sys/inc/tfoot.php';