Вход Регистрация
Файл: install/step/3.php
Строк: 71
<?php

$config 
parse_ini_file (ROOT 'system/ini/db.ini');

$db = new PDO ('mysql:host=' $config['dbhost'] .';dbname=' $config['dbname'], $config['dbuser'], $config['dbpass'], [
    
PDO::ATTR_PERSISTENT => true
]);
$db->query("SET NAMES utf8");

$listing[] = [
    
'title' => 'Регистрация администратора',
    
'div' => 'razdel',
];

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
    
];

    foreach (
glob(ROOT 'app/*') AS $name)
    {
        if (
strripos(str_replace([ROOT '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 (
mb_strlen($filter['pass1']) < 6)
    { 
        
$error 'Короткий пароль. Минимум 6 символов.';
    } 
    elseif (
$filter['pass1'] != $filter['pass2'])
    {
        
$error 'Пароли не совпадают.';
    }
    else 
    {    
        
$token md5(mt_rand(1000099999));

        
$stmt $db->prepare('INSERT INTO `users` (`login`, `password`, `token`, `time_reg`, `time_last`, `sex`, `level`) VALUES (:login, :password, :token, :time_reg, :time_last, :sex, :level)');
        
$stmt->execute([
            
':login' => $filter['login'],
            
':password' => Filter::encode($filter['pass1']),
            
':token' => $token,
            
':time_reg' => time(),
            
':time_last' => time(),
            
':sex' => $filter['sex'],
            
':level' => 4,
        ]);    

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

        
$_SESSION['step'] = 0;

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

Core::show('error');

$elements[] = [
    
'type' => 'input'
    
'title' => 'Логин'
    
'br' => 1
    
'info' => [
        
'name' => 'login',
    ]
];
$elements[]= [
    
'type' => 'select'
    
'title' => 'Пол'
    
'br' => 1
    
'info' => [
        
'name' => 'sex'
        
'options' => [
            [
                
1
                
'Мужской',
            ], 
            [
                
0,
                
'Женский',
            ]
        ]
    ]
];
$elements[] = [
    
'type' => 'password'
    
'title' => 'Пароль'
    
'br' => 1
    
'info' => [
        
'name' => 'pass1',
    ]
];
$elements[] = [
    
'type' => 'password'
    
'title' => 'Повторите пароль'
    
'br' => 1
    
'info' => [
        
'name' => 'pass2',
    ]
];
$elements[] = [
    
'type' => 'submit'
    
'info' => [
    
'name' => 'submit'
        
'value' => 'Завершить'
    
]
];

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