View file wip-site-portal/src/reg.php

File size: 11.85Kb
<?
require('ini.php');

$link=connect();

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

@$mod=$_GET['mod'];

switch($mod){
	
	default:
		echo '<small><b>Регистрация:</b> шаг первый<br/>';
		echo '<b>Поля помеченные * обязательны для заполнения!</b><br/>';
		echo 'В нике можно использовать буквы латинского и русского алфавита, цифры, пробел, а также символы @, !, ), (, _ и -<br/>';
		echo '* Ваш ник:</small><br/>';
		echo '<input name="nick" type="text" maxlength="30"/><br/>';
		echo '<small>* Код Вашего региона/страны: <a href="help.php?mod=city">[?]</a></small><br/>';
		echo '<input name="region" type="text" format="*N" maxlength="3" size="3"/><br/>';
		echo '<small>* Введите число с картинки:</small> <img src="img.php?'.$ref.'" alt="img"/><br/>';
		echo '<input name="word'.$ref.'" type="text" format="*N"  size="3" maxlength="2"/><br/>';
		echo '<small><anchor>Далее...<go href="reg.php?mod=next" method="post">';
		echo '<postfield name="nick" value="$(nick)"/>';
		echo '<postfield name="region" value="$(region)"/>';
		echo '<postfield name="word" value="$(word'.$ref.')"/>';
		echo '<postfield name="sess" value="'.$ref.'"/>';
		echo '</go></anchor></small><br/>';
		break;
	
		
	case 'next':				
		$error=false;
	
		@$nick=trim(htmlspecialchars($_POST['nick'],ENT_QUOTES));
		@$region=intval($_POST['region']);
		@$word=intval($_POST['word']);
		@$sess=intval($_POST['sess']);
				
		if(!$nick or !$region or !$word){
			echo '<small><b>Вы не заполнили обязательные поля!</b><br/><anchor>Назад<prev/></anchor><br/></small>';
			break;
		}
		
		mysql_query("select id from wip_users where nick='$nick';");
		if(mysql_affected_rows()>0){
			echo '<small><b>Ник '.$nick.' уже зарегистрирован в системе!</b><br/>---<br/></small>';
			$error=true;
		}
		
		if(strlen($nick)>60){
			echo '<small><b>Слишком длинный ник!</b><br/>---<br/></small>';
			$error=true;
		}
		
		$nick_tmp = strtr($nick, array('а'=>'|','б'=>'|','в'=>'|','г'=>'|','д'=>'|','е'=>'|','ё'=>'|','ж'=>'|','з'=>'|','и'=>'|','й'=>'|','к'=>'|','л'=>'|','м'=>'|','н'=>'|','о'=>'|','п'=>'|','р'=>'|','с'=>'|','т'=>'|','у'=>'|','ф'=>'|','х'=>'|','ц'=>'|','ч'=>'|','ш'=>'|','щ'=>'|','ъ'=>'|','ы'=>'|','ь'=>'|','э'=>'|','ю'=>'|','я'=>'|','А'=>'|','Б'=>'|','В'=>'|','Г'=>'|','Д'=>'|','Е'=>'|','Ё'=>'|','Ж'=>'|','З'=>'|','И'=>'|','Й'=>'|','К'=>'|','Л'=>'|','М'=>'|','Н'=>'|','О'=>'|','П'=>'|','Р'=>'|','С'=>'|','Т'=>'|','У'=>'|','Ф'=>'|','Х'=>'|','Ц'=>'|','Ч'=>'|','Ш'=>'|','Щ'=>'|','Ъ'=>'|','Ы'=>'|','Ь'=>'|','Э'=>'|','Ю'=>'|','Я'=>'|'));

		if (preg_match("/[^a-z0-9\@\(\)\!\-\_\|]+/i", $nick_tmp)){
			echo '<small><b>Запрещенные символы в нике!</b><br/>В нике можно использовать буквы русского, латинского алфавита, цифры, пробел, а также символы @, !, ), (, _ и -<br/>---<br/></small>';
			$error=true;
		}
		
		$select=mysql_query("select name from wip_regions where id='$region';");
		if(mysql_affected_rows()<1){
			echo '<small><b>Введен неверный код региона/страны!</b><br/>Список доступных кодов Вы можете посмотреть <a href="help.php?mod=city">здесь</a><br/>---<br/></small>';
			$error=true;
		}
		$regname=mysql_fetch_row($select);
		
		$select=mysql_query("select word from wip_regs where sess='$sess' and ip='$addr' and soft='$agent';");
		if(mysql_affected_rows()<1){
			echo '<small><b>Ошибка отображения проверочного кода!</b><br/>Возможно картинка с проверочным числом не была загружена браузером. Пожалуйста, включите в браузере отображение картинок и обновите страницу регистрации.<br/>---<br/></small>';
			$error=true;
		}
		
		$wrd=mysql_fetch_row($select);
		
		if($word!=$wrd[0]){
			echo '<small><b>Неверное число с картинки!</b><br/>Внимательно введите число с проверочной картинки<br/>---<br/></small>';
			$error=true;
		}
		
		if($wrd[0]) mysql_query("delete from wip_regs where sess='$sess' and ip='$addr' and soft='$agent';");
		
		if($error==true){
			echo '<small><anchor>Назад<prev/></anchor></small><br/>';
			break;
		}
		
		////
		echo '<small><b>Регистрация:</b> шаг второй<br/>';
		echo '<b>Поля помеченные * обязательны для заполнения!</b><br/>---<br/>';
		echo '<b>Ник:</b> '.$nick.'<br/>';
		echo '* Пароль:<br/>Должен содержать буквы латинского алфавита и/или цифры. Не используйте простых паролей, их легко подобрать!<br/></small>';
		echo '<input name="pass" type="text" maxlength="20"/><br/>';
		echo '<small>* Настоящее имя:</small><br/>';
		echo '<input name="name" type="text" maxlength="30"/><br/>';
		echo '<small>* Пол:</small>';
		echo '<select name="sex">';
		echo '<option value="m">M</option>';
		echo '<option value="zh">Ж</option>';
		echo '</select><br/>';
		echo '<small>Дата Рождения:</small><br/>';
		echo '<input name="day" maxlength="2" format="*N" size="2"/>-';
		echo '<input name="month" maxlength="2" format="*N" size="2"/>-';
		echo '<input name="year" maxlength="4" format="*N" size="4"/><br/>';
		echo '<small><b>Откуда:</b> '.$regname[0].' ['.$region.']<br/>';
		echo 'E-mail:<br/>На этот адрес будет выслан Ваш новый пароль, если вы забудете его и запросите новый, адрес в анкете не отображается. Сменить E-mail, если Вы сейчас его введете, будет нельзя.<br/></small>';
		echo '<input name="mail" type="text" maxlength="50"/><br/>';
		echo '<small>* О себе:</small><br/>';
		echo '<input name="about" type="text" maxlength="300"/><br/>';
		echo '<small><anchor>Далее...<go href="reg.php?mod=reg" method="post">';
		echo '<postfield name="nick" value="'.$nick.'"/>';
		echo '<postfield name="name" value="$(name)"/>';
		echo '<postfield name="pass" value="$(pass)"/>';
		echo '<postfield name="sex" value="$(sex)"/>';
		echo '<postfield name="day" value="$(day)"/>';
		echo '<postfield name="month" value="$(month)"/>';
		echo '<postfield name="year" value="$(year)"/>';
		echo '<postfield name="city" value="'.$region.'"/>';
		echo '<postfield name="mail" value="$(mail)"/>';
		echo '<postfield name="about" value="$(about)"/>';
		echo '</go></anchor></small><br/>';
		break;
		
	
	case 'reg':
		$error=false;
		
		@$nick=trim(htmlspecialchars($_POST['nick'],ENT_QUOTES));
		@$name=trim(htmlspecialchars($_POST['name'],ENT_QUOTES));
		@$pass=trim(htmlspecialchars($_POST['pass'],ENT_QUOTES));
		@$sex=trim(htmlspecialchars($_POST['sex'],ENT_QUOTES));
		@$day=substr(intval($_POST['day']),0,2);
		@$month=substr(intval($_POST['month']),0,2);
		@$year=substr(intval($_POST['year']),0,4);
		@$city=substr(intval($_POST['city']),0,3);
		@$mail=trim(htmlspecialchars($_POST['mail'],ENT_QUOTES));
		@$about=trim(htmlspecialchars($_POST['about'],ENT_QUOTES));
		
		if(!$nick or !$pass or !$sex or !$city or !$about){
			echo '<small><b>Вы не заполнили обязательные поля!</b><br/><anchor>Назад<prev/></anchor><br/></small>';
			break;
		}
		
		mysql_query("select id from wip_users where nick='$nick';");
		if(mysql_affected_rows()>0){
			echo '<small><b>Ник '.$nick.' уже зарегистрирован в системе!</b><br/>---<br/></small>';
			$error=true;
		}
		
		if(strlen($nick)>60){
			echo '<small><b>Слишком длинный ник!</b><br/>---<br/></small>';
			$error=true;
		}
		
		if (preg_match("/[^a-z0-9\@\(\)\!\-\_]+/i",$nick)){
			echo '<small><b>Запрещенные символы в нике!</b><br/>В нике можно использовать буквы латинского алфавита, цифры, пробел, а также символы @, !, ), (, _ и -<br/>---<br/></small>';
			$error=true;
		}
		
		if (preg_match("/[^a-z0-9]+/i",$pass)){
			echo '<small><b>Запрещенные символы в пароле!</b><br/>В пароле можно использовать только буквы латинского алфавита и цифры<br/>---<br/></small>';
			$error=true;
		}
		
		$select=mysql_query("select name from wip_regions where id='$city';");
		if(mysql_affected_rows()<1){
			echo '<small><b>Введен неверный код региона/страны!</b><br/>Список доступных кодов Вы можете посмотреть <a href="help.php?mod=city">здесь</a><br/>---<br/></small>';
			$error=true;
		}
		$regname=mysql_fetch_row($select);
		
		if ($day and $month and $year){
			if ($day>31 or $day<=0 or $month<=0 or $month>12 or $year<=0 or $year<1900 or $year>=date('Y')){
				echo '<small><b>Неверно введена дата рождения!</b><br/>Дата Рождения должна вводится в формате ДД-ММ-ГГГГ и быть корректной. Если Вы не хотите разглашать свой возраст, можете её вообще не вводить.<br/>---<br/></small>';
				$error=true;
			}
		}
	
		if($sex!='m' and $sex!='zh'){
			echo '<small><b>Неверный ввод пола!</b><br/>---<br/></small>';
			$error=true;
		}
		
		if($mail and !eregi("^[a-z0-9\._-]+@[a-z0-9\._-]+\.[a-z]{2,4}\$",$mail)){
			echo '<small><b>Неверный введён E-mail!</b><br/>---<br/></small>';
			$error=true;
		}
		
		if(strlen($about)>600){
			echo '<small><b>Введена слишком длинная информация о себе!</b><br/>---<br/></small>';
			$error=true;
		}
		
		if(strlen($name)>60){
			echo '<small><b>Введено слишком длинное настоящее имя!</b><br/>---<br/></small>';
			$error=true;
		}
		
		if($error==true){
			echo '<small><anchor>Назад<prev/></anchor></small><br/>';
			break;
		}
		
		$ins=mysql_query("insert into wip_users set nick='$nick', pass='".md5($pass)."', name='$name', sex='$sex', day='$day', month='$month', year='$year', city='$city', mail='$mail', about='$about', datereg='".time()."', ip='$addr', soft='$agent';");
		
		if(!$ins){
			echo '<small><b>Произошла внутренняя ошибка!</b><br/>Попробуйте обновить страницу, если ошибка повторится, обратитесь к администрации.</small><br/>';
			break;
		}
		
		$uid=mysql_insert_id();
		
		echo '<small>';
		echo 'Вы успешно зарегистрированы!<br/>';
		echo '---<br/>';
		echo '<b>Ваш UID:</b> '.$uid.'<br/>';
		echo '<b>Ваш ник:</b> '.$nick.'<br/>';
		echo '<b>Ваш пароль:</b> '.$pass.'<br/>';
		echo '---<br/>';
		echo 'Пожалуйста, хорошо запомните или запишите эти данные, они понадобятся для входа в систему.<br/>';
		echo 'Сейчас Вы можете ';
		echo '<anchor>войти в систему<go href="enter.php?'.$ref.'" method="post">';
		echo '<postfield name="uid" value="'.$uid.'"/>';
		echo '<postfield name="pass" value="'.$pass.'"/>';
		echo '</go></anchor></small><br/>';
		break;
}


echo '<small>---<br/>';
echo '<a href="index.php">На главную</a></small>';

foot();
mysql_close($link);
?>