Вход Регистрация
Файл: modules/register.php
Строк: 127
<?php
define
('SHCMS_ENGINE',true);
include_once(
'../engine/system/core.php');
//Заголовок
$templates->template('Регистрация посетителя');

//Если пользователь уже вошел на сайт то FALSE
if($id_user == true) {
    
header('Location: /index.php');
}
switch(
$do):
    default:
    
//Получение IP адреса гостя    
    
$ip engine::get_ip();
    
//Создаем массив ошибок
    
$error = array();
    
//Обработка кнопки
    
$submit filter_input(INPUT_POST,'submit');
        
//Если нажата кнопка
        
if(isset($submit)) {
            
//Обработа Полученного логина
        
$nick filter_inputINPUT_POST'login'FILTER_SANITIZE_STRING );
            
//Обработка полученного E-mail`a
            
$email filter_inputINPUT_POST'email'FILTER_SANITIZE_EMAIL );
            
$email filter_var$emailFILTER_VALIDATE_EMAIL );
            
//Обработка полученного пароля
        
$password filter_input(INPUT_POST'password'FILTER_SANITIZE_STRING);
        
$password2 filter_input(INPUT_POST'password2'FILTER_SANITIZE_STRING);
                
//Если введенные пароли не совпадают
            
if( $password != $password2 ) {
                    
$error['password'][] = 'Введенные пароли должны быть одинаковы';
                }
                
//Если введенный пароль меньше 5 символов
            
if( strlen($password) < ) {
                    
$error['password'][] = 'Пароль должен быть выше 5 символов';
                }
                
//Если Ник превышает 30 символов
            
if( engine::strlen_shcms$nick,'utf-8' ) > 30 or engine::strlen_shcmstrim$nick ), 'utf-8' ) < 3) {
                    
$error['login'][] = 'Недопустимая длина ника';
                }
                
//Проверка на недоступных символов
            
if( preg_match"/[||'|<|>|[|]|"|!|?|$|@|/|\|&~*{+]/", $nick ) ) {
                    
$error['login'][] = 'Ваш ник недопустим к регистрации';
                }
                //Проверяет введено ли в начале Буквы а не Номера
        if( preg_match('/[0-9]+/',engine::format_r(
$nick))) {
                    
$error['login'][] = 'В начале запрещено использовать числовые значение'; 
                }
                //Проверяем введенные Email
        if( empty( 
$email ) or strlen( $email ) > 50 OR @count( explode( '@',$email ) ) != 2 ) {
                    
$error['email'][] =  'Введенный Email неверный';
                }
                //Проверяем Ник
            if( strpos( strtolower( 
$nick ), '.php' ) !== false ) {
                    
$error['login'][] =  'Введенный ник недопустим';
                }
                //Проверяем Ник на ограниченные ошибки
        if( stripos( urlencode(
$nick), '%AD') !== FALSE) {
            
$error['login'][] = 'Введенный ник недопустим';
        }
                //Срезаем ненужные пустые значение из Ника
        if( function_exists('mb_strtolower') ) {
            
$nick = engine::trim(mb_strtolower($nick, 'utf-8'));
        } else {
            
$nick = engine::trim(strtolower( $nick ));
        }
            //Проверям На свободность ника    
            
$cnick = $db->super_query( "SELECT COUNT(*) as count FROM `usersWHERE nick '$nick'" );
                //Выводим параметр
        if( 
$cnick['count'] ) {
                    
$error['login'][] =  'Введенный Логин уже существует';
                }
            //Проверям на свободность почты    
        
$row = $db->super_query( "SELECT COUNT(*) as count FROM `usersWHERE email '$email'" );
                //Выводим параметр
        if( 
$row['count'] ) {
                    
$error['email'][] =  'Введенный Email уже существует';
                }
            //Проверяем была ли у вас раньше Регистрация на сайте    
        
$rowlog = $db->super_query( "SELECT COUNT(*) as count FROM `usersWHERE logged_ip '{$ip}'" );
                //Выводим параметр
               // if ( 
$rowlog['count'] ) {    
         //   echo die(engine::error('На сайте запрещена регистрация нескольких аккаунтов в одним и тем же IP адресом'));
        //}
            //Проверяем е
        if(empty(
$error)) {
                //Генереруем пароль для безопастности
            
$shgen = engine::shgen($password);
                //Добавляем данные в базу
            
$db->query( "INSERT INTO `users` (`nick`,`password`,`email`,`reg_date`,`lastdate`,`group`,`logged_ip`) VALUES ('".$db->safesql($nick)."','".$shgen."','".$db->safesql($email)."','$_date','$_date','1','$ip')" );
            //Получаем последний id
                
$id = $db->insert_id();
                //Запускаем Куки и добавляем данные
        setcookie( "
user_id_shcms", $id, 365 );
        setcookie( "
password_shcms", $shgen, 365 );
                //Запуск Сессии и добавляем данные
        
$_SESSION['user_id_shcms'] = $id;
        
$_SESSION['password_shcms'] = $shgen;
            header("
Location: ../index.php");
        }
    }
    
echo '<div class="
mainname">';
echo '<img src="
/engine/template/icons/info.png">&nbsp;';
echo Lang::__('Новый пользователь');
echo '<span class="
text-info right">Заполните все поля</span>';
echo '</div>';
echo '<div class="
mainpost"><ul class="list_data clearfix">';

    
$form = new form('?','','','id="register"');
    
$form->text('<li class="clear clearfix">');
    
$form->text('<span class="row_title regstyle">'.Lang::__('Логин').':</span>');
    
$form->text('<span class="row_data">');
    
$form->input2(false,'login','text',htmlspecialchars($nick),'placeholder="Введите Логин" required');
    
$form->text('</span>');
    if(isset(
$error['login'])) {
        
$form->text('<span class="row_data2 text-error small">'.implode('<br/>', $error['login']).'</span>');
    }
    
$form->text('</li>');
    
$form->text('<li class="clear clearfix">');
    
$form->text('<span class="row_title regstyle">'.Lang::__('E-mail').':</span>');
    
$form->text('<span class="row_data">');
    
$form->input2(false,'email','email',htmlspecialchars($email),'class="span3" placeholder="shcms@shcms.ru" required');
    if(isset(
$error['email'])) {
        
$form->text('<p class="text-error small">'.implode('<br/>', $error['email']).'</p>');
    }   
    
$form->text('</span></li>');
    
$form->text('<li class="clear clearfix">');
    
$form->text('<span class="row_title regstyle">'.Lang::__('Пароль').':</span>');
    
$form->text('<span class="row_data">');
    
$form->input(false,'password','password',false,false,'',true,'','<span id="result"></span>','','password');   
    if(isset(
$error['password'])) {
        
$form->text('<p class="text-error small">'.implode('<br/>', $error['password']).'</p>');
    }   
    
$form->text('</span></li>');
    
$form->text('<li class="clear clearfix">');
    
$form->text('<span class="row_title regstyle">'.Lang::__('Повторите').':</span>');
    
$form->text('<span class="row_data">');
    
$form->input(false,'password2','password',false);
    
$form->text('</span></li><div class="modal-footer">'); 
    
$form->submit('Регистрация','submit',false,'btn btn-success');
    
$form->text('<a class="btn" href="/index.php">Отмена</a>');
        
$form->display();
        echo '</div></ul></div>';

    break;
endswitch;
Онлайн: 2
Реклама