Вход Регистрация
Файл: 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) >= 3 && 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 == 1 || $gender == 2) {

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

                            if (
$is_login < 1 && !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 < 1 || $config['allow_regmail'] == 1) {

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

                                      if (
$config['allow_regmail'] == 1 && $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` = ?", 
$logs, md5(md5($pass_one)), $email, SITE_TIME, $regip, 107, $gender, $country, $region, $city, 1, $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_priv, SITE_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'] == 3 ) {

              
$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'] == 1 && 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(1 => 'Мужской', 2 => 'Женский'));
$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
Реклама