Вход Регистрация
Файл: pages/registration.php
Строк: 120
<?php
    
include '../engine/includes/start.php';

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

    include 
'engine/includes/head.php';

    if (
$user_id){
        
Core::stop('/pages/user.php');
    }


    if (isset(
$_GET['activation']) && $id){
        if (
$sql->query("SELECT COUNT(*) FROM `user` WHERE `id` = '" $id "' AND `activation` = '" my_esc($_GET['activation']) . "'")->result() !== '0'){
            
$sql->query("UPDATE `user` SET `activation` = 'null' WHERE `id` = '$id'");
            
$user['password'] = $sql->query("SELECT `password` FROM `user` WHERE `id` = '$id'")->result();
            
Core::msg_show('Ваш аккаунт успешно активирован');

            
setcookie('user_id'$id$time 60 60 24 365'/');
            
setcookie('pass'$user['password'], $time 60 60 24 365'/');

            echo 
'<a href="/pages/user.php">Перейти в свой кабинет</a>';

            include 
'engine/includes/foot.php';
        }
        else{
            
Core::msg_show('Ошибка активации аккаунта');
        }
    }

    if (
Core::form('reg_login')){
        
$valid = new Validator($_POST['reg_login'], array('login' => 'Логин'));

        
$rules = array(
            array(
'login''require'), array('login''length', array('min' => 3'max' => 16)), array('login''login'), array('token''token'),);

        
$rule = array(array('login''in_table', array('table' => 'user''row' => 'nick')));

        if (
$valid->check($rules) == true){
            if (
$valid->check($rule) == true){
                
Core::msg_show('Данный логин уже занят');
            }
            else{
                
$_SESSION['selected_login'] = trim($_POST['reg_login']['login']);
            }
        }
        else{
            
Core::msg_show($valid->errors);
        }
    }

    if (isset(
$_SESSION['selected_login'])){
        if (isset(
$_POST['auth'])){
            
$valid = new Validator($_POST['reg'], array('password' => 'Пароль''sex' => 'Пол''password2' => 'Повтор пароля''captcha' => 'Проверочный код',));

            
$rules = array(
                array(
'password, password2''require'),
                array(
'password''length',
                    array(
'min' => 6)),
                array(
'password''compare''password2'),
                array(
'captcha''captcha'),
                array(
'sex''default''1'),
                array(
'sex''in_list', array(01)));

            if (isset(
$set['reg_select']) && $set['reg_select'] == 'open_mail'){
                
$rules[] = array('email''require');
                
$rules[] = array('email''email');
            }


            if (
$valid->check($rules)){
                
$status $sql->query('SHOW TABLE STATUS LIKE "user"')->fetch();
                
$password md5($status['Auto_increment'] . Core::form('reg''password'));
                
$login my_esc($_SESSION['selected_login'], 'true');
                
$sex intval(Core::form('reg''sex'));

                if (!empty(
$set['activation_acc'])){
                    
$key md5(mt_rand());
                    
$email Core::form('reg''email');

                    
$sql->query("INSERT INTO `user` (`nick`, `pass`, `date_reg`, `date_last`, `activation`, `pol`, `ank_mail`) VALUES ('$login', '$password', '$time', '$time', '$key', '$sex', '$email')");
                    
$user['id'] = $sql->query("SELECT * FROM `user` WHERE `nick` = '" $login "' LIMIT 1")->result();
                    
$user Core::get_user($user['id'], true);

                    
$subject "Активация аккаунта";
                    
$regmail "Здравствуйте $login<br />
                    Для активации Вашего аккаунта перейдите по ссылке:<br />
                    <a href='http://
$_SERVER[HTTP_HOST]/pages/registration.php?id=$user[id]&amp;activation=$key'>http://$_SERVER[HTTP_HOST]/pages/reg.php?id=$user[id]&amp;activation=$key</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['email'], '=?utf-8?B?' base64_encode($subject) . '?='$regmail$adds);

                    
Core::msg_show('Вам необходимо активировать Ваш аккаунт по ссылке, высланной на E-mail');

                    include 
'engine/includes/foot.php';
                }
                else{
                    
$sql->query("INSERT INTO `user` (`nick`, `pass`, `date_reg`, `date_last`, `pol`, `ip`, `ua`)
                    VALUES ('
$login', '$password', '$time', '$time', '$sex', '" ip2long($_SERVER['REMOTE_ADDR']) . "', '" my_esc($_SERVER['HTTP_USER_AGENT'],
                                                                                                                                     
true) . "')");
                    
$user $sql->query("SELECT * FROM `user` WHERE `nick` = '" $login "' LIMIT 1")->result();
                    
$user Core::get_user($usertrue);
                    
setcookie('user_id'$user['id'], $time 60 60 24 365'/');
                    
setcookie('pass'$password$time 60 60 24 365'/');
                    
$res mysqli_query($sql->db'select `file` from `module_services` where `use_in` ="reg"');
                    while (
$file $sql->result($res)) {
                        include_once 
$file;
                    }
                    unset(
$_SESSION['selected_login']);
                    
?>
                    Вы успешно зарегистрировались<br/>
                    <a href="/pages/user.php">
                        <div class="link">Перейти в свой кабинет</div>
                    </a>
                    <?
                    
include 'engine/includes/foot.php';
                }
            }
            else{
                
Core::msg_show($valid->errors);
            }
        }

        echo 
'<div class="menu_razd">Регистрация ника: ' $_SESSION['selected_login'] . '</div>';
        
?>
        <form method="POST" name="reg">


            <?
                
if (!empty($set['activation_acc'])){
                    
?>
                    E-mail:<br/>
                    <input type="text" name="reg[email]" value="<?= Core::form('reg''email'?>"/><br/>
                <?
                
}
            
?>

            Пол:<br/>
            <select name="reg[sex]">
                <option value="1">Мужской</option>
                <option value="0">Женский</option>
            </select><br/>

            Пароль:<br/>
            <input type="password" name="reg[password]" value="<?= Core::form('reg''password'?>"/><br/>

            Повтор пароля:<br/>
            <input type="password" name="reg[password2]" value="<?= Core::form('reg''password2'?>"/><br/>

            <img src="/pages/captcha.php"/><br/>

            Проверочный код:<br/>
            <input type="text" name="reg[captcha]"/><br/>

            <input type="submit" name="auth" value="Зарегистрироваться"/>

        </form>
    <?
    
}
    else{
        
?>
        <form method="POST" name="reg_login">
            <label> Выберите логин: (от 3 до 16 символов)<br/>
                <input type="text" name="reg_login[login]" value=""/>
            </label><br/>
            <input type="hidden" name="reg_login[token]" value="<?= CSRF::generate('token'?>"/>
            <input type="submit" value="Выбрать"/>
        </form>
    <?php
    
}

    include 
'engine/includes/foot.php';
Онлайн: 2
Реклама