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

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

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

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

if (
$is_logged) {

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

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

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

/* Запрещенные логины к регистрации */
$bad_logins = !empty($config['bad_logins']) ? explode(','$config['bad_logins']) : array();

if (!
class_exists('Geo')) require( ENGINE '/classes/geo.class.php' );

$geo     = new Geo(array('charset' => 'utf-8'));
$city    $geo->get_value('city');
$country $geo->get_value('country');
$region  $geo->get_value('region');
$regip   $geo->get_ip();

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(
$_POST['rnd']) && $_POST['rnd'] == md5($_SESSION['token'])) {

      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 (
cms_strlen($logs) <= 20 && cms_strlen($pass_one) <= 20) {

                if (
cms_strlen($logs) >= && cms_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) {

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

                            if (
$is_login && !is_dir(ROOTPATH '/' $logs) && !in_array($logs$bad_logins)) {

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

                              if (
$is_nick 1) {

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

                                if (
$is_black 1) {

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

                                  if (
$is_email || $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['allow_regkeys'] = 0;
                                      }

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

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

                                      
// Уведомление о регистрации на E-mail
                                      
$text_mail "Добро пожаловать, " $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";

                                      
$show '';

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

                                          
$registration_key random_string(9);

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

                                          
$text_mail .= "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) {

                                          
$text_mail .= "nnВнимание! nВаш аккаунт будет активирован только после проверки администрацией! nПроверить статус активации вы сможете после авторизации на сайте";

                                          
$show .= '<div class="bl"><b><span style="color:#ff0000">Внимание! Ваш аккаунт будет активирован только после проверки администрацией!</span></b></div>';
                                      }

                                      
$id_user = (int) $db->query("INSERT INTO ?_users SET `users_login` = ?, `users_pass` = ?, `users_email` = ?, `users_joined` = ?, `users_reg_ip` = ?, `users_level` = ?, `users_gender` = ?, `users_country` = ?, `users_region` = ?, `users_city` = ?, `users_newprivat` = ?, `users_themes` = ?, `users_point` = ?, `users_money` = ?, `users_avatar` = ?, `users_confirmreg` = ?, `users_confirmregkey` = ?"
$logsmd5(md5($pass_one)), $emailSITE_TIME$regip107$gender$country$region$city1$config['themes'], $config['reg_add_score'], $config['reg_add_money'], ''$config['allow_regkeys'], $registration_key);

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

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

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

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

                                      
show_header('Регистрация');

                                      echo 
'<div class="bl text">';
                                      echo 
'Вы удачно зарегистрированы!<br /><br />';
                                      echo 
'Ваш Логин: <b>' $logs '</b><br />';
                                      echo 
'Ваш Пароль: <b>' $pass_one '</b><br /><br />';
                                      echo 
'Теперь вы можете войти</div>';

                                      echo 
'<div class="link"><a href="' $auto '">Вход на сайт</a></div>';
                                      echo 
'<div class="bl text">';
                                      echo 
'Вы можете сделать закладку для быстрого входа:<br />';
                                      echo 
'<span style="color:#ff0000">' $auto '</span><br /><br />';

                                      echo 
'Cкопировать: <br /><input name="avtovhod" size="60" value="' $auto '"/></div>';

                                      
show_footer();

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

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

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

              
$_SESSION['captcha_key'] = NULL;
              
$_SESSION['captcha_failures'] = 0;
          }
          else 
$inSes->addMessage('Ошибка! Проверочное число не совпало с данными на картинке!');
      }
    }
    else 
$inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
}

show_header('Моментальная регистрация');

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

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

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

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

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

$form = new cmsForm('''post'' name="form"');
$form->addText('Логин:''logs'request('logs'), ' maxlength="20"');
$form->addText('Пароль:''pass_one'request('pass_one'), ' maxlength="20"');
$form->addText('Повторите пароль:''pass_two'request('pass_two'), ' maxlength="20"');
$form->addText('Ваш e-mail:''email'request('email'), ' maxlength="70"');
$form->addSelect('Пол:''gender''', array(=> 'Мужской'=> 'Женский'));
$form->addCode('<br />');
$form->addCaptcha('Проверочный код:''code'gen_uri('reg'''RND));
$form->addHidden('rnd'md5($_SESSION['token']));
echo 
$form->Submit('Регистрация''submit');
unset(
$form);

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

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