Просмотр файла reg.php

Размер файла: 4.08Kb
<?php 
// by mides, 1da.su

$title = 'Регистрация';
require_once 'system/sys.php';
require_once 'system/header.php';

if (isset($u['id'])) {
	header('location: ./');
	exit;
}

switch ($act) {
	default:
		tp('Регистрация');
		echo '<form action="?act=do" method="post">
		Логин(min3, max12, a-z, 0-9):<br /><input name="login" type="text" maxlength="12" size="12" /><br />
		Пароль(min3, max20, a-z, 0-9):<br /><input name="pass" type="text" maxlength="20" /><br />
		E-mail(max50):<br /><input name="email" type="text" maxlength="50" /><br />
		Введите: <img src="inc/code.php?'.session_name().'='.session_id().'" alt="" /><br/>
		<input name="code" maxlength="5" /><br />
		С <a href="index.php?act=rules">правилами</a> <u>согласен(а)</u><br />
		<input type="submit" value="Регистрация"/>
		</form>';
		nav_main();
	break;
	
	case 'do':
		$login = check($_POST['login']);
		$pass = check($_POST['pass']);
		$email = check($_POST['email']);
		$code = intval($_POST['code']);
	
		# проверяем, не сущестует ли пользователя с таким именем 
		$query = mysql_query("SELECT COUNT(`id`) FROM `users` WHERE `login` = '$login'"); 
		if (mysql_result($query, 0) > 0) {
			error('Пользователь с таким логином уже существует.');
			nav('?');
            break;
		}
		# проверка логина
		if (!preg_match('|^[a-z0-9\-]+$|i', $login)) {
			error('Логин может состоять только из букв английского алфавита и цифр.');
			nav('?');
            break;
		}
		# проверяем длину логина
		if (strlen($login) < 3 or strlen($login) > 12) {
			error('Логин должен быть не меньше 3-х и не больше 12-и символов.');
			nav('?');
            break;
		}
		# проверка пароля
		if (!preg_match('|^[a-z0-9\-]+$|i', $pass)) {
			error('Пароль может состоять только из букв английского алфавита и цифр.');
			nav('?');
            break;
		}
		# проверяем длину пароля
		if (strlen($pass) < 3 or strlen($pass) > 20) {
			error('Пароль должен быть не меньше 3-х и не больше 20-и символов.');
			nav('?');
            break;
		}
		# проверяем e-mail;
		if (!preg_match('/[0-9a-z_\-]+@[0-9a-z_\-^\.]+\.[a-z]{2,6}/i', $email)) {
            error('E-mail введён не верно.');
			nav('?');
            break;
        }
		# проверяем, правильно ли введен защитный код
		if ($_SESSION['checkcode'] != $code or empty($code)) {
			error('Вы ввели неверный проверочный код.');
			nav('?');
			break;
		}				
		mysql_query("INSERT INTO `users` SET `login` = '$login', `pass` = '".md5(md5($pass))."', `email` = '$email', `regtime` = '".time()."', `style` = '$config[style]', `onpage` = '$config[onpage]'");
		
		tp('Информация');
		echo 'Вы успешно зарегистрированы.<br />
		Логин: '.$login.'<br />
		Пароль: '.$pass.'<br />
		Автологин:<br /><input name="auto" type="text" value="'.HTTPHOME.'/a.php?l='.$login.'&amp;p='.$pass.'" /><br />
		<a href="a.php?l='.$login.'&amp;p='.$pass.'">Ввойти по автологину</a>';
		nav_main();
		
		// sending e-mail
		$email_a = 'admin@'.HOME;
		$message = 'Уважаемый пользователь!
		Вы зарегистрировались на '.HOME.', данные для доступа:
		Логин: '.$login.'
		Пароль: '.$pass.'
		E-mail: '.$email.'
		Автологин: '.HTTPHOME.'/a.php?l='.$login.'&p='.$pass.'
		С уважением, '.HOME;
		
		mail($email, '=?utf-8?B?'.base64_encode('Регистрация на '.HOME).'?=', $message, "From: $email_a\r\nContent-type: text/plain; charset=utf-8;\r\nX-Mailer: PHP;");
		session_destroy();
	break;

}

require_once 'system/tail.php';
?>