Вход Регистрация
Файл: reg.php
Строк: 585
<?php
/* DCMS Special
 * Дата последнего редактирования 24.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 
'sys/inc/user.php';

only_unreg();
$set['title'] = lang('Регистрация');

require_once 
'sys/inc/thead.php';

if (isset(
$_GET['id'])) {
    
$refs '&id=' intval($_GET['id']);
} else {
    
$refs '';
}
if ((!isset(
$_SESSION['refer']) || $_SESSION['refer'] == NULL) && isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] != NULL && !preg_match('#mail.php#'$_SERVER['HTTP_REFERER'])) {
    
$_SESSION['refer'] = str_replace('&''&amp;'preg_replace('#^http://[^/]*/#''/'$_SERVER['HTTP_REFERER']));
}

if (
$set['reg_select'] == 'close') {
    
aut();

    echo 
"<div class='list-group-item-null list-group-item-warning'>Регистрация временно приостановлена<br />Попробуйте позже</div>";

    echo 
"<div class='list-group-item-null'><a href='/aut.php'><i class='fa fa-arrow-left fa-fw'></i> Авторизация</a></div>";
    require_once 
'sys/inc/tfoot.php';
    exit();
} 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 
'sys/inc/tfoot.php';
        exit();
    }
}

if (isset(
$_SESSION['step']) && $_SESSION['step'] == && mysql_result(mysql_query("SELECT COUNT(*) FROM `user` WHERE `nick` = '" $_SESSION['reg_nick'] . "'"), 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('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]/reg.php?id=$id_reg&amp;activation=$activation'>http://$_SERVER[HTTP_HOST]/reg.php?id=" mysql_insert_id() . "&amp;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(
$_POST['ank_name']) && preg_match('#^([A-zА-я -]*)$#ui'$_POST['ank_name'])) {
                
$user['ank_name'] = $_POST['ank_name'];
                
mysql_query("UPDATE `user` SET `ank_name` = '" mysql_real_escape_string($user['ank_name']) . "' WHERE `id` = '$user[id]' LIMIT 1");
            } else {
                
$err[] = 'Неверный формат имени';
            }

            if (isset(
$_POST['ank_d_r']) && (is_numeric($_POST['ank_d_r']) && $_POST['ank_d_r'] > && $_POST['ank_d_r'] <= 31 || $_POST['ank_d_r'] == NULL)) {
                
$user['ank_d_r'] = $_POST['ank_d_r'];
                if (
$user['ank_d_r'] == null) {
                    
$user['ank_d_r'] = 'null';
                }
                
mysql_query("UPDATE `user` SET `ank_d_r` = $user[ank_d_r] WHERE `id` = '$user[id]' LIMIT 1");
                if (
$user['ank_d_r'] == 'null') {
                    
$user['ank_d_r'] = NULL;
                }
            } else {
                
$err[] = lang('Неверный формат даты рождения');
            }

            if (isset(
$_POST['ank_m_r']) && (is_numeric($_POST['ank_m_r']) && $_POST['ank_m_r'] > && $_POST['ank_m_r'] <= 12 || $_POST['ank_m_r'] == NULL)) {
                
$user['ank_m_r'] = $_POST['ank_m_r'];
                if (
$user['ank_m_r'] == null) {
                    
$user['ank_m_r'] = 'null';
                }
                
mysql_query("UPDATE `user` SET `ank_m_r` = $user[ank_m_r] WHERE `id` = '$user[id]' LIMIT 1");
                if (
$user['ank_m_r'] == 'null') {
                    
$user['ank_m_r'] = NULL;
                }
            } else {
                
$err[] = 'Неверный формат месяца рождения';
            }

            if (isset(
$_POST['ank_g_r']) && (is_numeric($_POST['ank_g_r']) && $_POST['ank_g_r'] > && $_POST['ank_g_r'] <= date('Y') || $_POST['ank_g_r'] == NULL)) {
                
$user['ank_g_r'] = $_POST['ank_g_r'];
                if (
$user['ank_g_r'] == null) {
                    
$user['ank_g_r'] = 'null';
                }
                
mysql_query("UPDATE `user` SET `ank_g_r` = $user[ank_g_r] WHERE `id` = '$user[id]' LIMIT 1");
                if (
$user['ank_g_r'] == 'null') {
                    
$user['ank_g_r'] = NULL;
                }
            } else {
                
$err[] = 'Неверный формат года рождения';
            }
        }

        
$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']) . "')");
        }
        if (isset(
$_GET['id'])) {
            
mysql_query("INSERT INTO `user_referals` (`user_id`, `id_ref`, `time`) VALUES ('" $user['id'] . "', '" intval($_GET['id']) . "', '" time() . "');");
            
mysql_query("UPDATE `user` SET `money` = `money` + '200' WHERE `id` = '" intval($_GET['id']) . "' LIMIT 1");
        }

        
$msglenta "Привет [b] $user[nick] [/b] , это события твоих друзей, сюда будут приходить все события твоих друзей, новые файлы, новые фото, темы в форуме, вопросы в ответах и т.д";
        
$msgjurnal "Доброго времени суток [b] $user[nick] [/b] , здесь твои уведомления, сюда будут приходить все ответы на ваши комментарии и прочие уведомления.";
        
$messeg "Доброго времени суток [b] $user[nick] [/b], спасибо вам за регистрацию на нашем сайте [b] " $_SERVER['HTTP_HOST'] . " [/b] . Если у вас возникли проблемы обратитесь к онлайн помощникам или попробуйте найти ответ на свой вопрос в [url=/modules/forum/]форуме[/url] .";
        
mysql_query("INSERT INTO `mail` (`id_user`, `id_kont`, `msg`, `time`) values('0', '$user[id]', '$messeg', '$time')");
        
mysql_query("INSERT INTO `notification` (`id_user`, `id_kont`, `msg`, `time`) values('1', '$user[id]', '$msgjurnal', '$time')");
        
mysql_query("INSERT INTO `notifications` (`id_user`, `id_kont`, `msg`, `time`) values('1', '$user[id]', '$msglenta', '$time')");

        
$_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-null'>";
        echo 
"Если Ваш браузер не поддерживает Cookie, Вы можете создать закладку для автовхода<br />";
        echo 
"<input type='text' class='form-control' value='http://$_SERVER[SERVER_NAME]/login.php?id=$user[id]&amp;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);
        }

        
$doc->Link('list-group-item-null''/?umenu''arrow-left''Кабинет');

        require_once 
'sys/inc/tfoot.php';
        exit();
    }
} 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-null list-group-item-info' action='/reg.php?$passgen&$refs'>";
    
?>
    <div class="input-group">
        <span class="input-group-addon" id="basic-addon1">Логин</span>
        <input type="text" name='nick' required class="form-control" placeholder="Ваш логин" value="<?= $_SESSION['reg_nick'?>">
        <span class="input-group-btn">
            <button class="btn btn-secondary">Заменить</button>
        </span>
    </div>
    <?php
    
echo "</form>n";

    echo 
"<form method='post' action='/reg.php?$passgen&$refs' class='list-group-item-null'>n";
    
?>
    <div class="input-group">
        <span class="input-group-addon" id="basic-addon1">Имя</span>
        <input type="text" name='ank_name' required class="form-control" placeholder="Ваше имя" value="<?= $user['ank_name'?>">
    </div>
    Дата рождения<br />

    <select name="ank_d_r" required class="custom-select">
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="6">6</option>
        <option value="7">7</option>
        <option value="8">8</option>
        <option value="9">9</option>
        <option value="10">10</option>
        <option value="11">11</option>
        <option value="12">12</option>
        <option value="13">13</option>
        <option value="14">14</option>
        <option value="15">15</option>
        <option value="16">16</option>
        <option value="17">17</option>
        <option value="18">18</option>
        <option value="19">19</option>
        <option value="20">20</option>
        <option value="21">21</option>
        <option value="22">22</option>
        <option value="23">23</option>
        <option value="24">24</option>
        <option value="25">25</option>
        <option value="26">26</option>
        <option value="27">27</option>
        <option value="28">28</option>
        <option value="29">29</option>
        <option value="30">30</option>
        <option value="31">31</option>
    </select>

    <select name="ank_m_r" required class="custom-select">
        <option value="1">Января</option>
        <option value="2">Февраля</option>
        <option value="3">Марта</option>
        <option value="4">Апреля</option>
        <option value="5">Мая</option>
        <option value="6">Июня</option>
        <option value="7">Июля</option>
        <option value="8">Августа</option>
        <option value="9">Сентября</option>
        <option value="10">Октября</option>
        <option value="11">Ноября</option>
        <option value="12">Декабря</option>
    </select>

    <select name="ank_g_r" required class="custom-select">
        <option value="2005">2005</option>
        <option value="2004">2004</option>
        <option value="2003">2003</option>
        <option value="2002">2002</option>
        <option value="2001">2001</option>
        <option value="2000">2000</option>
        <option value="1999">1999</option>
        <option value="1998">1998</option>
        <option value="1997">1997</option>
        <option value="1996">1996</option>
        <option value="1995">1995</option>
        <option value="1994">1994</option>
        <option value="1993">1993</option>
        <option value="1992">1992</option>
        <option value="1991">1991</option>
        <option value="1990">1990</option>
        <option value="1989">1989</option>
        <option value="1988">1988</option>
        <option value="1987">1987</option>
        <option value="1986">1986</option>
        <option value="1985">1985</option>
        <option value="1984">1984</option>
        <option value="1983">1983</option>
        <option value="1982">1982</option>
        <option value="1981">1981</option>
        <option value="1980">1980</option>
        <option value="1979">1979</option>
        <option value="1978">1978</option>
        <option value="1977">1977</option>
        <option value="1976">1976</option>
        <option value="1975">1975</option>
        <option value="1974">1974</option>
        <option value="1973">1973</option>
        <option value="1972">1972</option>
        <option value="1971">1971</option>
        <option value="1970">1970</option>
        <option value="1969">1969</option>
        <option value="1968">1968</option>
        <option value="1967">1967</option>
        <option value="1966">1966</option>
        <option value="1965">1965</option>
        <option value="1964">1964</option>
        <option value="1963">1963</option>
        <option value="1962">1962</option>
        <option value="1961">1961</option>
        <option value="1960">1960</option>
        <option value="1959">1959</option>
        <option value="1958">1958</option>
        <option value="1957">1957</option>
        <option value="1956">1956</option>
        <option value="1955">1955</option>
        <option value="1954">1954</option>
        <option value="1953">1953</option>
        <option value="1952">1952</option>
        <option value="1951">1951</option>
        <option value="1950">1950</option>
        <option value="1949">1949</option>
        <option value="1948">1948</option>
        <option value="1947">1947</option>
        <option value="1946">1946</option>
        <option value="1945">1945</option>
        <option value="1944">1944</option>
        <option value="1943">1943</option>
        <option value="1942">1942</option>
        <option value="1941">1941</option>
        <option value="1940">1940</option>
        <option value="1939">1939</option>
        <option value="1938">1938</option>
        <option value="1937">1937</option>
        <option value="1936">1936</option>
        <option value="1935">1935</option>
        <option value="1934">1934</option>
        <option value="1933">1933</option>
        <option value="1932">1932</option>
        <option value="1931">1931</option>
        <option value="1930">1930</option>
        <option value="1929">1929</option>
        <option value="1928">1928</option>
        <option value="1927">1927</option>
        <option value="1926">1926</option>
        <option value="1925">1925</option>
        <option value="1924">1924</option>
        <option value="1923">1923</option>
        <option value="1922">1922</option>
        <option value="1921">1921</option>
        <option value="1920">1920</option>
    </select><br />
    <?php
    
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>";

    if (
$set['reg_select'] == 'open_mail') {
        
$doc->Input('ank_mail''E-mail'50);

        echo 
"* Указывайте ваш реальный адрес E-mail. На него придет код для активации аккаунта.n";
    }

    echo 
lang('Новый пароль') . "<br />";
    echo 
"<input name='pass1' maxlength='32' required length='32' type='password' value='' class='form-control'>";
    echo 
lang('Повторите пароль') . "<br />";
    echo 
"<input name='pass2' maxlength='32' required length='32' type='password' value='' class='form-control'><br />";

    echo 
"<img src = '/captcha.php?$passgen&amp;SESS=$sess' width='100' height='30' alt='Проверочное число' /><br />";
    echo 
lang('Ответ') . "<br />";
    echo 
"<input id='chislo' name='chislo' required style='width: 30%;' length='2' type='text' value='' class='form-control'><br />";

    echo 
"<button class='btn btn-success btn-sm'>" lang('Продолжить') . "</button> ";

    echo 
"</form>";
} else {
    echo 
"<form method='post' class='list-group-item-null' action='/reg.php?$passgen&$refs'>n";
    echo 
lang('Введите логин') . "<br />";
    echo 
"<input id='nick' required name='nick' length='32' type='text' value='' class='form-control'><br />";

    echo 
"<button class='btn btn-success btn-sm'>" lang('Продолжить') . "</button> ";

    echo 
"<br /><br />";
    echo 
"</form>";
    echo 
"<small class='list-group-item-null list-group-item-warning'>Регистрируясь, вы соглашаетесь с нашими <a href='/modules/info/rules.php'>Условиями использования</a> и подтверждаете, что ознакомились с нашей <a href='/modules/info/rules.php'>Политикой использования данных</a>, включая <a href='/modules/info/rules.php'>использование файлов «cookie»</a>.</small>";
}

require_once 
'sys/inc/tfoot.php';
Онлайн: 1
Реклама