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

Core
::only('guest');

$smarty->header('Регистрация');

if (
filter_has_var(INPUT_POST'submit'))
{
    
$filter = [
        
'login' => filter_has_var(INPUT_POST'login')
            ? 
filter_input(INPUT_POST'login'FILTER_UNSAFE_RAW)
            : 
null,
        
'sex' => filter_has_var(INPUT_POST'sex')
            ? 
filter_input(INPUT_POST'sex'FILTER_SANITIZE_NUMBER_INT)
            : 
null,
        
'pass1' => filter_has_var(INPUT_POST'pass1')
            ? 
filter_input(INPUT_POST'pass1'FILTER_UNSAFE_RAW)
            : 
null,
        
'pass2' => filter_has_var(INPUT_POST'pass2')
            ? 
filter_input(INPUT_POST'pass2'FILTER_UNSAFE_RAW)
            : 
null,
        
'captcha' => filter_has_var(INPUT_POST'captcha')
            ? 
filter_input(INPUT_POST'captcha'FILTER_SANITIZE_NUMBER_INT)
            : 
null
    
];

    foreach (
glob('app/*') AS $name)
    {
        if (
strripos(str_replace(['app/''.php'], ''$name), $filter['login']) !== false)
        {
            
$error true;
        }
    }

    if (isset(
$error))
    {
        
$error 'Запрещенный логин.';
    }
    elseif (
Filter::strlen($filter['login']) < || Filter::strlen($filter['login']) > 32)
    { 
        
$error 'Неверный формат логина.';
    } 
    elseif (
preg_match ('/[^A-Za-z0-9-]/'$filter['login'])) 
    {
        
$error 'Логин должен иметь только латинские буквы и цифры.';
    }
    elseif (
$db->query("SELECT `id` FROM `users` WHERE `login` = '" $filter['login'] . "'")->rowCount() != 0)
    {
        
$error 'Данный логин уже зарегистрирован.';
    }
    elseif (
mb_strlen ($filter['pass1']) < 6)
    { 
        
$error 'Короткий пароль. Минимум 6 символов.';
    } 
    elseif (
$filter['pass1'] != $filter['pass2'])
    {
        
$error 'Пароли не совпадают.';
    }
    elseif (
$_SESSION['captcha'] != $filter['captcha'])
    {
        
$error 'Проверочный код введен неверно.';
    }

    else 
    {    
        
$token md5(mt_rand(1000099999));
                
         
$stmt $db->prepare('INSERT INTO `users` (`login`, `password`, `token`, `time_reg`, `time_last`, `sex`, `language`) VALUES (:login, :password, :token, :time_reg, :time_last, :sex, :language)');
        
$stmt->execute([
            
':login' => $filter['login'],
            
':password' => Filter::encode($filter['pass1']),
            
':token' => $token,
            
':time_reg' => time(),
            
':time_last' => time(),
            
':sex' => $filter['sex'],
            
':language' => $config['language'],
        ]);    

        
setcookie('token'$tokentime() + 60 60 24 31 365'/');
        
setcookie('id'$db->lastInsertId(), time() + 60 60 24 31 365'/');

        
Core::go('/');
    }
}

Core::show('error');

$_SESSION['captcha'] = rand(1000099999);

$elements[] = [
    
'type' => 'input'
    
'title' => Lang::word('Логин'), 
    
'br' => 1
    
'info' => [
        
'name' => 'login',
    ]
];
$elements[]= [
    
'type' => 'select'
    
'title' => Lang::word('Пол'), 
    
'br' => 1
    
'info' => [
        
'name' => 'sex'
        
'options' => [
            [
                
1
                
Lang::word('Мужской'),
            ], 
            [    
0,
                
Lang::word('Женский'),
            ]
        ]
    ]
];    
$elements[] = [
    
'type' => 'password'
    
'title' => Lang::word('Пароль'), 
    
'br' => 1
    
'info' => [
        
'name' => 'pass1',
    ]
];

$elements[] = [
    
'type' => 'password'
    
'title' => Lang::word('Повторите пароль'), 
    
'br' => 1
    
'info' => [
        
'name' => 'pass2',
    ]
];
$elements[] = [
    
'type' => 'input'
    
'title' => Lang::word('Проверочный код').': <b>' $_SESSION['captcha'] . '</b>'
    
'br' => 1
    
'info' => [
        
'name' => 'captcha'
    
]
];
$elements[] = [
    
'type' => 'submit'
    
'info' => [
        
'name' => 'submit'
        
'value' => Lang::word('Далее')
    ]
];

$smarty->assign([
    
'method' => 'POST',
    
'action' => '?',
    
'el' => $elements
]);
$smarty->display('form.tpl');
$smarty->footer();
Онлайн: 2
Реклама