Вход Регистрация
Файл: CMS/core/modules/reg.php
Строк: 188
<?php

if (!defined('CMS')) { die('Access Denied!'); }

if (
$config['allow_reg'] == 1) {

    if (!
$is_logged) {

        if (empty(
$_SESSION[SP]['reg_user'])) {

          if (!empty(
$_POST['submit'])) {

            
$logs     = !empty($_POST['logs'])     ? check($_POST['logs'])     : '';
            
$pass_one = !empty($_POST['pass_one']) ? check($_POST['pass_one']) : '';
            
$pass_two = !empty($_POST['pass_two']) ? check($_POST['pass_two']) : '';
            
$code     = !empty($_POST['code'])     ? (int) $_POST['code']      : '';
            
$gender   = !empty($_POST['gender'])   ? num($_POST['gender'])     : '';
            
$error    '';
            
$_SESSION['captcha_key'] = !empty($_SESSION['captcha_key']) ? $_SESSION['captcha_key'] : NULL;
            
$_SESSION['captcha_failures'] = !empty($_SESSION['captcha_failures']) ? $_SESSION['captcha_failures'] : 0;

            if (empty(
$config['allow_regmail'])) {

                
$email = !empty($_POST['email']) ? cms_tolower(check($_POST['email'])) : '';
            }
            else 
$email '';

            if (!empty(
$_SESSION['captcha_key']) && ($_SESSION['captcha_key'] == $code)) {
              if (
preg_match('|^[a-z0-9-]+$|i'$logs)) {
                if (
preg_match('|^[a-z0-9-]+$|i'$pass_one)) {
                  if (
preg_match('#^([a-z0-9_-.])+@([a-z0-9_-.])+(.([a-z0-9])+)+$#'$email) || $config['allow_regmail'] == 1) {
                    if (
strlen($logs) <= 20 && strlen($pass_one) <= 20) {
                      if (
strlen($logs) >= && strlen($pass_one) >= 3) {
                        if (
$pass_one == $pass_two) {
                          if (
$logs != $pass_one) {
                            if (!
ctype_digit($pass_one)) {
                              if (
substr_count($logs'-') < 3) {
                                if (
$gender == || $gender == 2) {

                                  
$reglogin $db->selectCell("SELECT `users_id` FROM ?_users
                                                               WHERE LOWER(`users_login`) = ? LIMIT 1;"
cms_tolower($logs));

                                  if (empty(
$reglogin)) {

                                    
$regnick $db->selectCell("SELECT `users_id` FROM ?_users
                                                                WHERE LOWER(`users_nickname`) = ? LIMIT 1;"
cms_tolower($logs));

                                    if (empty(
$regnick)) {

                                      
$black = (int) $db->selectCell("SELECT `id` FROM ?_users_black_list
                                                                      WHERE (LOWER(`login`) = ? OR LOWER(`email`) = ?)
                                                                      LIMIT 1;"
cms_tolower($logs), $email);

                                      if (empty(
$black)) {

                                        
$regmail $db->selectCell("SELECT `users_id` FROM ?_users
                                                                    WHERE LOWER(`users_email`) = ? LIMIT 1;"
$email);

                                        if (empty(
$regmail) || $config['allow_regmail'] == 1) {

                                            
//$_SESSION[SP]['reg_user']     = 1;
                                            
$_SESSION['captcha_key']      = NULL;
                                            
$_SESSION['captcha_failures'] = 0;
                                            
$registration_key             '';

                                            if (
$config['allow_regmail'] == && $config['allow_regkeys'] == 1) {

                                              
$config['regkeys'] = 0;
                                            }

                                            
$auto  $config['site_url'] . '/';
                                            
$auto .= gen_uri('login''''login=' $logs '&pass=' $pass_one);

                                            
// Уведомление в приват
                                            
$textpriv 'Добро пожаловать, ' $logs '!<br />Теперь Вы полноправный пользователь сайта ' $config['site_name'] . ', сохраните ваш логин и пароль в надежном месте, они пригодятся вам для входа на наш сайт.<br />Перед посещением сайта рекомендуем вам ознакомиться с [url=' $config['site_url'] . '/' gen_uri('rules') . ']правилами сайта[/url], это поможет Вам избежать неприятных ситуаций.<br />Желаем приятно провести время.<br />С уважением, администрация сайта ' $config['site_name'];

                                            
// Уведомление о регистрации на E-mail
                                            
$regmail "Добро пожаловать, " $logs " nТеперь вы зарегистрированный пользователь сайта " $config['site_url'] . ", сохраните ваш логин и пароль в надежном месте, они вам еще пригодятся. nВаши данные для входа на сайт nЛогин: " $logs " nПароль: " $pass_one " nnСсылка для автоматического входа на сайт: n" $config['site_url'] . "/" gen_uri('login''''login=' $logs '&pass=' $pass_one) . " nНадеемся вам понравится на нашем портале! nС уважением администрация сайта " $config['site_name'] . "nЕсли это письмо попало к вам по ошибке, то просто проигнорируйте его.n";

                                            if (
$config['allow_regkeys'] == 1) {

                                              
$registration_key random_string(9);

                                              echo 
'<div class="b"><b><span style="color:#ff0000">Внимание! После входа на сайт, вам будет необходимо ввести мастер-ключ для подтверждения регистрации<br />';
                                              echo 
'Мастер-ключ был выслан вам на почтовый ящик: ' $email '</span></b><br /></div>';

                                              
$regmail .= "nnВнимание! nДля подтверждения регистрации необходимо в течении 24 часов ввести мастер-ключ! nВаш мастер-ключ: " $registration_key " nВведите его после авторизации на сайте nИли перейдите по прямой ссылке: nn" $config['site_url'] . "/" gen_uri('key''''key=' $registration_key) . " nnЕсли в течении 24 часов вы не подтвердите регистрацию, ваш профиль будет автоматически удален";
                                            }

                                            if (
$config['allow_regkeys'] == 2) {

                                              
$regmail .= "nnВнимание! nВаш аккаунт будет активирован только после проверки администрацией! nПроверить статус активации вы сможете после авторизации на сайте";
                                              echo 
'<div class="b"><b><span style="color:#ff0000">Внимание! Ваш аккаунт будет активирован только после проверки администрацией!</span></b><br /></div>';
                                            }

                                            
$id_user = (int) $db->query("INSERT INTO ?_users SET `users_login` = ?, `users_pass` = ?, `users_email` = ?, `users_joined` = ?, `users_level` = ?, `users_gender` = ?, `users_newprivat` = ?, `users_themes` = ?, `users_point` = ?, `users_money` = ?, `users_avatar` = ?, `users_confirmreg` = ?, `users_confirmregkey` = ?, `users_uploads` = ?"
$logsmd5(md5($pass_one)), $emailSITE_TIME107$gender1$config['themes'], $config['reg_add_score'], $config['reg_add_money'], ''$config['allow_regkeys'], $registration_key$config['max_users_files']);

                                            
$db->query("INSERT INTO ?_users_inbox (`inbox_user`, `inbox_author`, `inbox_text`, `inbox_time`) VALUES (?, ?, ?, ?);"$logs$config['nickname'], $textprivSITE_TIME);

                                            if (empty(
$config['allow_regmail'])) {

                                                
$send SendMail($email$logs'Регистрация на сайте ' $config['site_name'], $regmail);

if (
$send <> 'ok'$inSes->addMessage($send);
                                            }

                                            
show_header('Регистрация');
                                            echo 
'<div class="b">';
                                            echo 
'Вы удачно зарегистрированы!<br /><br />';
                                            echo 
'Ваш Логин: <b>' $logs '</b><br />';
                                            echo 
'Ваш Пароль: <b>' $pass_one '</b><br /><br />';
                                            echo 
'Теперь вы можете войти<br /><br />';
                                            echo 
icon('open.gif');
                                            echo 
' <a href="' $auto '">Вход на сайт</a><br /></div>';
                                            echo 
'<div class="b">';
                                            echo 
'Вы можете сделать закладку для быстрого входа:<br />';
                                            echo 
'<span style="color:#ff0000">' $auto '</span><br /><br />';
                                            echo 
'Cкопировать: <br /><input name="avtovhod" size="60" value="' $auto '"/><br /></div>';

                                            
show_footer();

                                        } else {
                                          
$error 'Ошибка! E-mail указанный вами уже используется в системе, введите другой адрес!';
                                        }
                                      } else {
                                        
$error 'Ошибка! Выбранный вами логин или email занесен в черный список!';
                                      }
                                    } else {
                                      
$error 'Ошибка! Выбранный вами логин используется кем-то в качестве ника!';
                                    }
                                  } else {
                                    
$error 'Ошибка! Пользователь с данным логином уже зарегистрирован!';
                                  }
                                } else {
                                  
$error 'Ошибка! Вы не указали ваш пол!';
                                }
                              } else {
                                
$error 'Ошибка! Запрещено использовать в логине слишком много дефисов!';
                              }
                            } else {
                              
$error 'Ошибка! Запрещен пароль состоящий только из цифр, используйте буквы!';
                            }
                          } else {
                            
$error 'Ошибка! Пароль и логин должны отличаться друг от друга!';
                          }
                        } else {
                          
$error 'Ошибка! Веденные пароли отличаются друг от друга!';
                        }
                      } else {
                        
$error 'Ошибка! Слишком короткий логин или пароль (От 3 до 20 символов)!';
                      }
                    } else {
                      
$error 'Ошибка! Слишком длинный логин или пароль (От 3 до 20 символов)!';
                    }
                  } else {
                    
$error 'Ошибка! Вы ввели неверный адрес e-mail, необходим формат name@site.domen!';
                  }
                } else {
                  
$error 'Ошибка! Недопустимые символы в пароле. Разрешены знаки латинского алфавита, цифры и дефис!';
                }
              } else {
                
$error 'Ошибка! Недопустимые символы в логине. Разрешены знаки латинского алфавита, цифры и дефис!';
              }
            } else {

                if ( ++
$_SESSION['captcha_failures'] == ) {

                    
$error 'Ошибка! Вы ввели несколько раз подряд неверный код с картинки. Сгенерирован новый код.';

                    
$_SESSION['captcha_key'] = NULL;
                    
$_SESSION['captcha_failures'] = 0;
                }
                else 
$error 'Ошибка! Проверочное число не совпало с данными на картинке!';
            }

            if (!empty(
$error)) $inSes->addMessage($error'error');

          }
          
/* Главная страница */

          
show_header('Регистрация');
          echo 
'<div class="b">';
          echo 
'Регистрация на сайте означает что вы ознакомлены и согласны с ';
          echo 
'<a title="Правила сайта" href="' gen_uri('rules') . '"><b>правилами</b></a> нашего сайта<br />';
          echo 
'Длина логина или пароля должна быть от 3 до 25 символов<br />';
          echo 
'В полях логин и пароль разрешено использовать только знаки латинского алфавита и цифры, а также знак дефис!<br /></div>';

          if (
$config['allow_regkeys'] == && empty($config['allow_regmail'])) {

              echo 
'<div class="b"><span style="color:#ff0000">Включено подтверждение регистрации! ';
              echo 
'Вам на почтовый ящик будет выслан мастер-ключ, который необходим для подтверждения регистрации!</span><br /></div>';
          }

          if (
$config['allow_regkeys'] == 2) {

              echo 
'<div class="b"><span style="color:#ff0000">Включена модерация регистрации! ';
              echo 
'Ваш аккаунт будет активирован только после проверки администрацией!</span><br /></div>';
          }

          if (
$config['allow_karantin'] > 0) {

              echo 
'<div class="b"><span style="color:#ff0000">Включен карантин! ';
              echo 
'Новые пользователи не могут писать сообщения в течении ';
              echo 
round($config['allow_karantin'] / 3600) . ' час. после регистрации!</span><br /></div>';
          }

          
$form = new cmsForm(gen_uri('reg'), 'post'' name="form"');
          
$form->addText(blink('*') . 'Логин:''logs'request('logs'), ' maxlength="20"');
          
$form->addText(blink('*') . 'Пароль:''pass_one'request('pass_one'), ' maxlength="20"');
          
$form->addText(blink('*') . 'Повторите пароль:''pass_two'request('pass_two'), ' maxlength="20"');

          if (empty(
$config['allow_regmail'])) {

              
$form->addText(blink('*') . 'Ваш e-mail:''email'request('email'), ' maxlength="70"');
          }
          
$form->addSelect(blink('*') . 'Пол:''gender''', array(=> 'Мужской'=> 'Женский'));
          
$form->addCode('<br />');
          
$form->addCaptcha(blink('*') . 'Проверочный код:''code'gen_uri('reg'''RND));
          echo 
$form->Submit('Регистрация''submit');
          unset(
$form);

          echo 
'<div class="b">Обновите страницу если вы не видите проверочный код!<br />';
          echo 
'Все поля обязательны для заполнения, более полную информацию о себе вы можете добавить в своем профиле после регистрации<br />';
          echo 
'Указывайте верный е-мэйл, на него будут высланы регистрационные данные.<br /></div>';

          
show_footer();

        }
        else {

          
$inSes->addMessage('Ошибка! Вы уже регистрировались. Запрещено регистрировать несколько аккаунтов!');
          
gen_red('index');
        }
    }
    else {

        
$inSes->addMessage('Вы уже регистрировались, нельзя регистрироваться несколько раз!');
        
gen_red('index');
    }
}
else {

    
$inSes->addMessage('Регистрация временно приостановлена, пожалуйста зайдите позже!');
    
gen_red('index');
}

?>
Онлайн: 0
Реклама