View file pages/reg.php

File size: 4.36Kb
<?php 
// by mides, wmclub.mobi

$title = 'Регистрация';
require('../config.php');
require('../includes/sys.php');
require('../includes/start.php');
require('../includes/header.php');

switch($_GET['act']){

###############################################################################
##                         Форма регистрации                                 ##
###############################################################################
default:

tp('Регистрация');
echo '<form action="?act=reg_do" method="post" name="form">';
echo 'Логин(от 3 символов):<br/><input name="login" type="text" maxlength="20" /><br />';
echo 'E-mail:<br/><input name="mail" type="text" maxlength="20" /><br />';
echo 'Пароль(от 5 символов):<br/><input name="pass" type="text" maxlength="20" /><br />';
$_SESSION['protect'] = generate(4);
echo 'Введите код <font color="red">'.$_SESSION['protect'].'</font>:<br />';
echo '<input name="protect" type="text" maxlength="4" /><br />';
echo '<input name="submit" type="submit" value="Ok" /></form>';
nav_main();

break;

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

if(!empty($_POST['login']) && !empty($_POST['mail']) && !empty($_POST['pass'])){
	$login = check($_POST['login']);
	$mail = check($_POST['mail']);
	$pass = check($_POST['pass']);

	if($u['id']){
		error('Вы уже зарегистрированы на сайте!');
		nav_main();
		break;
	}
	
	if(!preg_match('|^[a-z0-9\-]+$|i', $login) or !preg_match('|^[a-z0-9\-]+$|i', $pass)){
		error('Недопустимые символы в логине или пароле. Разрешены знаки латинского алфавита, цифры и дефис!');
		nav('reg.php');
		break;
	}
	
	if(!preg_match('#^([a-z0-9_\-\.])+\@([a-z0-9_\-\.])+(\.([a-z0-9])+)+$#', $mail)){
		error('Вы ввели неверный адрес e-mail, необходим формат [email protected]!');
		nav('reg.php');
		break;
	}
	
	if(strlen($login) < 3){
		error('Слишком короткий логин! От 3 символов!');
		nav('reg.php');
		break;
	}
	
	if(strlen($_POST['pass']) < 5){
		error('Слишком короткий пароль! От 5 символов!');
		nav('reg.php');
		break;
	}
	
	if($_SESSION['protect'] != check($_POST['protect'])){
		error('Вы ввели неверное число!');
		nav('reg.php');
		session_destroy();
		break;
	}
	
	$same_login = mysql_result(mysql_query("SELECT COUNT(`id`) FROM `users` WHERE `user_login` = '$login'"), 0);
	$same_mail = mysql_result(mysql_query("SELECT COUNT(`id`) FROM `users` WHERE `user_mail` = '$mail'"), 0);
	if($same_login > 0 or $same_mail > 0){
		error('Пользователь с таким логином или e-mail уже существует!');
		nav('reg.php');
		break;
	}

	mysql_query("INSERT INTO `users` SET `user_login` = '$login', `user_mail` = '$mail', `user_pass` = '".md5(md5($pass))."', `user_regtime` = '".time()."', `set_style` = '$config[style]', `set_onpage` = '$config[onpage]'");
	info('Вы успешно зарегистрированы! Вы можете войти используя ваш логин и пароль');
	nav_main();
	
	if(!empty($config['feedback'])){
		$feedback = '---------------------
		'.$config['feedback'];
	}
	
	$message = 'Уважаемый пользователь!
	Вы успешно зарегистрировались на сайте '.$_SERVER['HTTP_HOST'].'
	Это письмо содержит важную информацию о вашем аккаунте.
	Логин: '.$login.'
	Пароль: '.$pass.'
	E-mail: '.$mail.'
	Автологин: http://'.$_SERVER['HTTP_HOST'].'/pages/auth.php?l='.$login.'&p='.$pass.'
	'.$feedback;
		
mail($mail, '=?utf-8?B?'.base64_encode('Регистрация на '.$_SERVER['HTTP_HOST']).'?=', $message, "From: admin@".$_SERVER['HTTP_HOST']."\r\nContent-type: text/plain; charset=utf-8;\r\nX-Mailer: PHP;");


}else{
	error('Вы не заполнили поля!');
	nav('reg.php');
}
 
break;


}
require("../includes/tail.php");
?>