View file pages/registration.php

File size: 18.36Kb
<?php
#-----------------------------------------------------#
#          ********* ROTORCMS *********               #
#              Made by  :  VANTUZ                     #
#               E-mail  :  [email protected]         #
#                 Site  :  http://pizdec.ru           #
#             WAP-Site  :  http://visavi.net          #
#                  ICQ  :  36-44-66                   #
#  Вы не имеете право вносить изменения в код скрипта #
#        для его дальнейшего распространения          #
#-----------------------------------------------------#	
require_once ('../includes/start.php');
require_once ('../includes/functions.php');
require_once ('../includes/header.php');
include_once ('../themes/' . $config['themes'] . '/index.php');

if (isset($_GET['act'])) {
  $act = check($_GET['act']);
} else {
  $act = 'index';
} 

show_title('site.png', 'Регистрация');
$config['newtitle'] = 'Регистрация';

if ($config['openreg'] == 1) {
  if (!is_user()) {
    if (empty($_SESSION['reguser'])) {
      switch ($act):
      # ###########################################################################################
      # #                                    Главная страница                                    ##
      # ###########################################################################################
      case 'index':

        echo 'Регистрация на сайте означает что вы ознакомлены и согласны с <b><a href="rules.php?' . SID . '">правилами</a></b> нашего сайта<br />';
        echo 'Длина логина или пароля должна быть от 3 до 20 символов<br />';
        echo 'В полях логин и пароль разрешено использовать только знаки латинского алфавита и цифры, а также знак дефис!<br />';

        if ($config['regkeys'] == 1 && empty($config['regmail'])) {
          echo '<span style="color:#ff0000">Включено подтверждение регистрации! Вам на почтовый ящик будет выслан мастер-ключ, который необходим для подтверждения регистрации!</span><br />';
        } 

        if ($config['regkeys'] == 2) {
          echo '<span style="color:#ff0000">Включена модерация регистрации! Ваш аккаунт будет активирован только после проверки администрацией!</span><br />';
        } 

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

        echo '<br /><div class="form">';
        echo '<form action="registration.php?act=register&amp;' . SID . '" method="post">';
        echo 'Логин: <br /><input name="logs" maxlength="20" /><br />';
        echo 'Пароль: <br /><input name="pars" type="password" maxlength="20" /><br />';
        echo 'Повторите пароль: <br /><input name="pars2" type="password" maxlength="20" /><br />';
		echo 'Пол:<br />';
		echo '<select name="gender">';
		echo '<option value="М">Мужской</option>';
		echo '<option value="Ж">Женский</option>';
		echo '</select><br />';

        if (empty($config['regmail'])) {
          echo 'Ваш e-mail: <br /><input name="meil" maxlength="50" /><br />';
        } 

        echo 'Проверочный код:<br /> ';
        echo '<input name="provkod" size="6" maxlength="6" /> ';

        if ($config['protectimg'] == 1) {
          echo '<img src="../gallery/protect.php?' . SID . '" alt="" /><br />';
        } else {
          echo '<b>' . $_SESSION['protect'] . '</b><br />';
        } 

        echo '<br /><input value="Регистрация" type="submit" /></form></div><br />';

        echo 'Обновите страницу если вы не видите проверочный код!<br />';
        echo 'Все поля обязательны для заполнения, более полную информацию о себе вы можете добавить в своем профиле после регистрации<br />';
        echo 'Указывайте верный е-мэйл, на него будут высланы регистрационные данные<br /><br />';
        break;
      # ###########################################################################################
      # #                                       Регистрация                                      ##
      # ###########################################################################################
      case 'register':

        $logs = check($_POST['logs']);
        $pars = check($_POST['pars']);
        $pars2 = check($_POST['pars2']);
		$gender = check($_POST['gender']);
        $provkod = abs(intval($_POST['provkod']));
        if (empty($config['regmail'])) {
          $meil = strtolower(check($_POST['meil']));
        } else {
          $meil = '';
        } 

        if ($provkod == $_SESSION['protect']) {
          if (preg_match('|^[a-z0-9\-]+$|i', $logs)) {
            if (preg_match('|^[a-z0-9\-]+$|i', $pars)) {
              if (preg_match('#^([a-z0-9_\-\.])+\@([a-z0-9_\-\.])+(\.([a-z0-9])+)+$#', $meil) || $config['regmail'] == 1) {
                if (strlen($logs) <= 20 && strlen($pars) <= 20) {
                  if (strlen($logs) >= 3 && strlen($pars) >= 3) {
                    if ($pars == $pars2) {
                      if ($logs != $pars) {
                        if (!ctype_digit($pars)) {
                          if (substr_count($logs, '-') < 3) {
                            $reglogin = DB :: $dbh -> querySingle("SELECT `users_id` FROM `users` WHERE lower(`users_login`)=? LIMIT 1;", array(strtolower($logs)));
                            if (empty($reglogin)) {
                              $regnick = DB :: $dbh -> querySingle("SELECT `users_id` FROM `users` WHERE lower(`users_nickname`)=? LIMIT 1;", array(strtolower($logs)));
                              if (empty($regnick)) {
                                $blacklogin = DB :: $dbh -> querySingle("SELECT `black_id` FROM `blacklogin` WHERE lower(`black_login`)=? LIMIT 1;", array(strtolower($logs)));
                                if (empty($blacklogin)) {
                                  $regmail = DB :: $dbh -> querySingle("SELECT `users_id` FROM `users` WHERE `users_email`=? LIMIT 1;", array($meil));
                                  if (empty($regmail) || $config['regmail'] == 1) {
                                    $blackmail = DB :: $dbh -> querySingle("SELECT `black_id` FROM `blackmail` WHERE `black_mail`=? LIMIT 1;", array($meil));
                                    if (empty($blackmail) || $config['regmail'] == 1) {
                                      $_SESSION['reguser'] = 1;
                                      unset($_SESSION['protect']);
                                      $registration_key = '';

                                      if ($config['regmail'] == 1 && $config['regkeys'] == 1) {
                                        $config['regkeys'] = 0;
                                      } 
                                      // ------------------------------ Уведомление в приват ----------------------------------//
                                      $textpriv = 'Добро пожаловать, ' . $logs . '!<br />Теперь Вы полноправный пользователь сайта, сохраните ваш пароль и логин в надежном месте, они пригодятся вам для входа на наш сайт.<br />Перед посещением сайта рекомендуем вам ознакомиться с [url=' . $config['home'] . '/pages/rules.php?' . SID . ']правилами сайта[/url], это поможет Вам избежать неприятных ситуаций.<br />Желаем приятно провести время.<br />С уважением, администрация сайта';
                                      // ------------------------- Уведомление о регистрации на E-mail --------------------------//
                                      $regmail = "Добро пожаловать, " . $logs . " \nТеперь вы зарегистрированный пользователь сайта " . $config['home'] . " , сохраните ваш пароль и логин в надежном месте, они вам еще пригодятся. \nВаши данные для входа на сайт \nЛогин: " . $logs . " \nПароль: " . $pars . " \n\nСсылка для автоматического входа на сайт: \n" . $config['home'] . "/input.php?login=" . $logs . "&pass=" . $pars . "&cookietrue=1 \nНадеемся вам понравится на нашем портале! \nС уважением администрация сайта \nЕсли это письмо попало к вам по ошибке, то просто проигнорируйте его";

                                      if ($config['regkeys'] == 1) {
                                        $registration_key = generate_password();

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

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

                                      if ($config['regkeys'] == 2) {
                                        $regmail .= "\n\nВнимание! \nВаш аккаунт будет активирован только после проверки администрацией! \nПроверить статус активации вы сможете после авторизации на сайте";
                                        echo '<b><span style="color:#ff0000">Внимание! Ваш аккаунт будет активирован только после проверки администрацией!</span></b><br /><br />';
                                      } 
                                      // ----------------------------------------------------------------------------------//
                                      DB :: $dbh -> query("INSERT INTO `users` (`users_login`, `users_pass`, `users_email`, `users_joined`, `users_level`, `users_newprivat`, `users_themes`, `users_postguest`, `users_postnews`, `users_postprivat`, `users_postforum`, `users_themesforum`, `users_postboard`, `users_timezone`, `users_showtime`, `users_point`, `users_money`, `users_avatar`, `users_confirmreg`, `users_confirmregkey`, `users_gender`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);", array($logs, md5(md5($pars)), $meil, SITETIME, 107, 1, $config['themes'], $config['bookpost'], $config['postnews'], $config['privatpost'], $config['forumpost'], $config['forumtem'], $config['boardspost'], $config['timeclocks'], $config['showtime'], 0, 1000, 'images/avatars/noavatar.gif', $config['regkeys'], $registration_key, $gender));

                                      DB :: $dbh -> query("INSERT INTO `inbox` (`inbox_user`, `inbox_author`, `inbox_text`, `inbox_time`) VALUES (?, ?, ?, ?);", array($logs, $config['nickname'], $textpriv, SITETIME));

                                      if (empty($config['regmail'])) {
                                        addmail($meil, 'Регистрация на сайте ' . $config['title'], $regmail);
                                      } 
                                      // ----------------------------------------------------------------------------------------//
                                      echo 'Вы удачно зарегистрированы!<br /><br />';

                                      echo 'Логин: <b>' . $logs . '</b><br />';
                                      echo 'Пароль: <b>' . $pars . '</b><br /><br />';

                                      echo 'Теперь вы можете войти<br />';
                                      echo '<br /><img src="../images/img/open.gif" alt="image" /> ';
                                      echo '<b><a href="' . BASEDIR . 'input.php?login=' . $logs . '&amp;pass=' . $pars . '&amp;cookietrue=1&amp;' . SID . '">Вход на сайт</a></b><br /><br />';

                                      echo 'Вы можете сделать закладку для быстрого входа:<br />';
                                      echo '<span style="color:#ff0000">' . $config['home'] . '/input.php?login=' . $logs . '&amp;pass=' . $pars . '</span><br /><br />';
                                      echo 'Cкопировать: <br /><input name="avtovhod" size="60" value="' . $config['home'] . '/input.php?login=' . $logs . '&amp;pass=' . $pars . '"/><br /><br />';

                                      echo 'Если у вас включены cookies, то делать такую закладку не обязательно<br /><br />';
                                    } else {
                                      show_error('Ошибка! Указанный вами адрес e-mail занесен в черный список!');
                                    } 
                                  } else {
                                    show_error('Ошибка! E-mail указанный вами уже используется в системе, введите другой адрес!');
                                  } 
                                } else {
                                  show_error('Ошибка! Выбранный вами логин занесен в черный список!');
                                } 
                              } else {
                                show_error('Ошибка! Выбранный вами логин используется кем-то в качестве ника!');
                              } 
                            } else {
                              show_error('Ошибка! Пользователь с данным логином уже зарегистрирован!');
                            } 
                          } else {
                            show_error('Ошибка! Запрещено использовать в логине слишком много дефисов!');
                          } 
                        } else {
                          show_error('Ошибка! Запрещен пароль состоящий только из цифр, используйте буквы!');
                        } 
                      } else {
                        show_error('Ошибка! Пароль и логин должны отличаться друг от друга!');
                      } 
                    } else {
                      show_error('Ошибка! Веденные пароли отличаются друг от друга!');
                    } 
                  } else {
                    show_error('Ошибка! Слишком короткий логин или пароль (От 3 до 20 символов)!');
                  } 
                } else {
                  show_error('Ошибка! Слишком длинный логин или пароль (От 3 до 20 символов)!');
				}
				if ($gender == 'М' || $gender == 'Ж') {
			    } else {
				show_error('Ошибка! Вы не указали ваш пол!');
                } 
              } else {
                show_error('Ошибка! Вы ввели неверный адрес e-mail, необходим формат [email protected]!');
              } 
            } else {
              show_error('Ошибка! Недопустимые символы в пароле. Разрешены знаки латинского алфавита, цифры и дефис!');
            } 
          } else {
            show_error('Ошибка! Недопустимые символы в логине. Разрешены знаки латинского алфавита, цифры и дефис!');
          } 
         } else {
          show_error('Ошибка! Проверочное число не совпало с данными на картинке!');
        } 

        echo '<img src="../images/img/back.gif" alt="image" /> <a href="registration.php?' . SID . '">Вернуться</a><br />';
        break;

      default:
        header("location: registration.php?" . SID);
        exit;
        endswitch;
      } else {
      show_error('Ошибка! Вы уже регистрировались. Запрещено регистрировать несколько аккаунтов!');
    } 
  } else {
    show_error('Вы уже регистрировались, нельзя регистрироваться несколько раз!');
  } 
} else {
  show_error('Регистрация временно приостановлена, пожалуйста зайдите позже!');
} 

echo '<img src="../images/img/homepage.gif" alt="image" /> <a href="../index.php?' . SID . '">На главную</a>';

include_once ("../themes/" . $config['themes'] . "/foot.php");

?>