Просмотр файла pages/registration.php

Размер файла: 17.04Kb
<?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/header.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"><b>Включено подтверждение регистрации!</b> Вам на почтовый ящик будет выслан мастер-ключ, который необходим для подтверждения регистрации!</span><br />';
					} 

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

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

					$reglogs = (!empty($_SESSION['reglogs'])) ? $_SESSION['reglogs'] : '';

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

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

					echo 'Пол:<br />';
					echo '<select name="gender">';
					$selected = (isset($_SESSION['gender']) && $_SESSION['gender'] == 1) ? ' selected="selected"' : '';
					echo '<option value="1"'.$selected.'>Мужской</option>';
					$selected = (isset($_SESSION['gender']) && $_SESSION['gender'] == 2) ? ' selected="selected"' : '';
					echo '<option value="2"'.$selected.'>Женский</option>';
					echo '</select><br />';

					echo 'Проверочный код:<br /> ';
					echo '<img src="../gallery/protect.php?'.SID.'" alt="" /><br />';
					echo '<input name="provkod" size="6" maxlength="6" /><br />';

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

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

				############################################################################################
				##                                       Регистрация                                      ##
				############################################################################################
				case 'register':

					$logs = check(strval($_POST['logs']));
					$pars = check(strval($_POST['pars']));
					$pars2 = check(strval($_POST['pars2']));
					$provkod = check(strtolower($_POST['provkod']));
					$meil = (empty($config['regmail'])) ? strtolower(check(strval($_POST['meil']))) : '';
					$gender = intval($_POST['gender']);

					$_SESSION['reglogs'] = $logs;
					$_SESSION['regmeil'] = $meil;
					$_SESSION['gender'] = $gender;

					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 ($gender == 1 || $gender == 2) {
														if (!ctype_digit($pars)) {
															if (substr_count($logs, '-') < 3) {
																$reglogin = DB::run() -> querySingle("SELECT `users_id` FROM `users` WHERE lower(`users_login`)=? LIMIT 1;", array(strtolower($logs)));
																if (empty($reglogin)) {
																	$regnick = DB::run() -> querySingle("SELECT `users_id` FROM `users` WHERE lower(`users_nickname`)=? LIMIT 1;", array(strtolower($logs)));
																	if (empty($regnick)) {
																		$blacklogin = DB::run() -> querySingle("SELECT `black_id` FROM `blacklogin` WHERE lower(`black_login`)=? LIMIT 1;", array(strtolower($logs)));
																		if (empty($blacklogin)) {
																			$regmail = DB::run() -> querySingle("SELECT `users_id` FROM `users` WHERE `users_email`=? LIMIT 1;", array($meil));
																			if (empty($regmail) || $config['regmail'] == 1) {
																				$blackmail = DB::run() -> querySingle("SELECT `black_id` FROM `blackmail` WHERE `black_mail`=? LIMIT 1;", array($meil));
																				if (empty($blackmail) || $config['regmail'] == 1) {
																					$_SESSION['reguser'] = 1;
																					$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." \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::run() -> query("INSERT INTO `users` (`users_login`, `users_pass`, `users_email`, `users_joined`, `users_level`, `users_gender`, `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_timelastlogin`, `users_confirmreg`, `users_confirmregkey`, `users_navigation`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);", array($logs, md5(md5($pars)), $meil, SITETIME, 107, $gender, 1, $config['themes'], $config['bookpost'], $config['postnews'], $config['privatpost'], $config['forumpost'], $config['forumtem'], $config['boardspost'], $config['timezone'], $config['showtime'], 0, 1000, SITETIME, $config['regkeys'], $registration_key, $config['navigation']));

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

																					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;'.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('Ошибка! Введенные пароли отличаются друг от друга!');
											} 
										} else {
											show_error('Ошибка! Слишком короткий логин или пароль (От 3 до 20 символов)!');
										} 
									} else {
										show_error('Ошибка! Слишком длинный логин или пароль (От 3 до 20 символов)!');
									} 
								} 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:
				redirect("registration.php?".SID);
			endswitch;

		} else {
			show_error('Ошибка! Вы уже регистрировались. Запрещено регистрировать несколько аккаунтов!');
		} 
	} else {
		show_error('Вы уже регистрировались, нельзя регистрироваться несколько раз!');
	} 
} else {
	show_error('Регистрация временно приостановлена, пожалуйста зайдите позже!');
} 

include_once ('../themes/footer.php');
?>