Файл: reg.php
Строк: 141
<?php
ob_start();
session_start();
include 'mod_reg.dat';
require 'system/config.php';
include 'system/user.php';
include 'system/head.php';
function xss($var)
{
$var = trim($var);
$var = str_replace(" 0", "", $var);
$var = mysql_real_escape_string($var);
$var = htmlspecialchars($var, ENT_QUOTES, 'UTF-8');
return $var;
}
function int($var)
{
$var = abs((int)$var);
return $var;
}
echo $div_title . 'Регистрация' . $div_end;
if ($mod_reg == 0)
{
err('Регистрация временно закрыта!');
include 'system/foot.php';
exit();
}
$mod = isset($_GET['mod']) ? $_GET['mod'] : '';
switch($mod)
{
default:
// Если попытка повторной регистрации
if (!empty($_COOKIE['us']) && !empty($_COOKIE['ps'])) {
header('Location: index.php');
die();
}
echo $div_menu . '<b>Шаг 1</b>' . $div_end;
echo '<div>Приветствуем в клубе вап мастеров ' . $site . '!<br/>
- Запрещена нецензурная лексика на всех модулях сайта. Правило распространяется и на те случаи, когда одна или несколько букв в таком слове заменены точками или другими знаками.<br/>
- Запрещён флейм на всех модулях сайта, кроме предназначенных для этого (таких как раздел "Флейм" на форуме, если он есть, или чат).<br/>
- Запрещено создание тем в форуме с названиями вида: "вопрос...", "помогите...", "срочно...", "где взять", "как сделать". Подобные темы будут удаляться, а пользователи наказываться баном.<br/>
- Запрещено создание тем с просьбами о займе денег, а так же в предоставлении займа.<br/>
- Запрещён флуд. Сообщения, состоящие только из смайликов, приравниваются к флуду.<br/>
- Запрещено намеренное поднятие темы. Сообщения вида: "вверх", "ап" и т.д.<br/>
- Запрещена реклама сторонних wap и web ресурсов на всех модулях сайта. Рекламой считается любой URL, не являющийся прямой ссылкой на файл. Подпись к ссылке "не реклама" расценивается как неуважение к администрации. Разрешается давать ссылку на страницу закачки данного (одного!) файла, но только если по техническим причинам нет возможности дать прямую ссылку. Свою личную страничку вы можете указать в вашей анкете.
- Запрещается выкладывать файлы сомнительного содержания, к которым относятся вирусы, трояны и приложения, автоматически отправляющие платные SMS.<br/>
- Запрещена реклама с целью личного обогащения или обмана пользователей ("бесплатный" GPRS и тому подобное мошенничество).<br/>
- Запрещается обсуждение администраторов, модераторов и их действий публично. Все претензии принимаются через личные сообщения.<br/>
- Запрещено намеренное клонирование ников других посетителей сайта. Имеется в виду регистрация под ником, схожим по написанию или звучанию с ником другого пользователя (особенно модератора или администратора), для намеренного введения в заблуждение пользователей сайта. Также запрещено регистрироваться под никами, которые могут ввести в заблуждение новичков сайта, например "Модератор", "Админ" и т.п.<br/>
- Запрещено регистрировать ники откровенно сексуального характера, неприличные, нарушающие общепринятые нормы морали, оскорбляющие отдельных пользователей или группы пользователей (по национальному, религиозному или иному признаку).<br/>
- Запрещены оскорбления, особенно этнического, политического, расового и религиозного характера на всех модулях сайта.<br/>
- Запрещено размещать на любом из модулей сайта файлы и ссылки на видео и изображения с убийствами, казнями и т.п., а также с детской порнографией.<br/>
- Запрещены призывы к нарушению законодательства РФ, а также сообщения, сами по себе нарушающие законодательство РФ.
' . $block . '
<a href="reg.php?mod=step2"><span class="next">Принимаю</span></a>
<a href="index.php"><span class="next">Не принимаю</span></a>
</div>';
break;
case step2:
$_SESSION['reg_user'] = '';
if (!empty($_POST['user'])) {
$error = '';
$user = xss($_POST['user']);
$first_l = mb_substr($user, 0, 1, 'UTF8');
$last_l = mb_substr($user, -1, 1, 'UTF8');
if (!preg_match('/^([a-zа-яё1-9_])+ ?([a-zа-яё1-9_])+$/ui', $user)) $error = 'Ник может состоять только из букв англ/рус алфавита, цифр и одного пробела!';
elseif (!preg_match('#^([a-zа-яё1-9])+$#ui', $first_l)) $error = 'Ник должен начинаться с буквы или цифры!';
elseif (!preg_match('#^([a-zа-яё1-9])+$#ui', $last_l)) $error = 'Ник должен заканчиваться буквой или цифрой!';
elseif (preg_match('/[a-z]/i', $user) && preg_match('/[а-яё]/siu', $user)) $error = 'Ник не может одновременно содержать рус. и англ. буквы!';
elseif (ctype_digit($user)) $error = 'Ник не должен состоять из одних цифр!';
elseif (mb_strlen($user, 'UTF-8') < 3) $error = 'Ник не должен содержать менее 3х знаков!';
elseif (mb_strlen($user, 'UTF-8') > 15) $error = 'Ник не должен превышать 15 знаков!';
$latuser = mb_strtolower($user, 'UTF8');
$sql = mysql_query("SELECT `id` FROM `users` WHERE `latuser` = '$latuser' LIMIT 1");
if (mysql_num_rows($sql) != FALSE) {
$error = 'Указанный Вами ник ' . $user . ' уже занят!';
}
if (!empty($error)) {
err($error);
} else {
$_SESSION['reg_user'] = $user;
header('Location: ' . htmlspecialchars_decode('reg.php?mod=step3'));
}
}
$n = (isset($_GET['n'])) ? $_SESSION['empty_user'] . my_int($_GET['n']) : NULL;
echo $div_menu . 'Шаг 1 из 2
' . $div_end . '
<form method="POST" action="reg.php?mod=step2" name="auth">
<div>Введите желаемый ник, чтобы проверить не занят ли он:
<br/>
<input type="text" name="user" maxlength="15" title="nick" value="'.$n.'"/>
<br/>
<input type="submit" value="Далее" name="enter"/>
</div>
</form>
« <a href="reg.php?mod=step1">Назад</a>';
break;
case step3:
if (empty($_SESSION['reg_user'])) header('Location: reg.php?');
if (isset($_POST['ok'])) {
$error = '';
$user = $_SESSION['reg_user'];
$first_l = mb_substr($user, 0, 1, 'UTF8');
$last_l = mb_substr($user, -1, 1, 'UTF8');
$pass = xss($_POST['pass']);
$pass2 = xss($_POST['pass2']);
$email = xss($_POST['email']);
$icq = int($_POST['icq']);
$sex = int($_POST['sex']);
$info = xss($_POST['info']);
$know = int($_POST['know']);
$code = int($_POST['code']);
$town = xss($_POST['town']);
$latuser = mb_strtolower($user, 'UTF8');
$sql = mysql_query("SELECT `id` FROM `users` WHERE `latuser` = '$latuser' LIMIT 1");
$double_mail = mysql_query("SELECT id FROM users WHERE email = '$email' LIMIT 1");
if (!preg_match('/^([a-zа-яё1-9_])+$/ui', $user)) $error = 'Ник содержит запрещенные символы';
elseif (!preg_match('#^([a-zа-яё1-9])+$#ui', $first_l)) $error = 'Ник должен начинаться с буквы или цифры!';
elseif (!preg_match('#^([a-zа-яё1-9])+$#ui', $last_l)) $error = 'Ник должен заканчиваться буквой или цифрой!';
elseif (preg_match('/[a-z]/i', $user) && preg_match('/[а-яё]/siu', $user)) $error = 'Ник не может одновременно содержать рус. и англ. буквы!';
elseif (mysql_num_rows($sql) != false) $error = 'Указанный Вами ник <b>' . $user . '</b> уже занят!';
elseif (mb_strlen($user, 'UTF-8') < 3) $error = 'Ник не должен содержать менее 3х знаков!';
elseif (mb_strlen($user, 'UTF-8') > 15) $error = 'Ник не должен превышать 15 знаков!';
elseif (ctype_digit($user)) $error = 'Ник не должен состоять из одних цифр!';
elseif (empty($pass)) $error = 'Не заполнено поле пароль!';
elseif (empty($pass2)) $error = 'Не заполнено поле подтверждения пароля!';
elseif (!preg_match("!^[a-z0-9]+$!i", $pass)) $error = 'В пароле обнаружены запрещенные знаки!';
elseif (mb_strlen($pass, 'UTF8') < 6) $error = 'Пароль не должен быть короче 6ти символов!';
elseif (mb_strlen($pass, 'UTF8') > 20) $error = 'Пароль не должен быть длиннее 20ти символов!';
elseif ($pass !== $pass2) $error = 'Пароли не совпадают!';
elseif (is_numeric($pass)) $error = 'Слишком простой пароль, используйте буквы и цифры!';
elseif (empty($town)) $error = 'Не введен город!';
elseif (!preg_match('#^[A-z0-9-._]+@[A-z0-9]{2,}.[A-z]{2,4}$#ui', $email) && !empty($email)) $error = 'Неверный формат email!';
elseif (!empty($email) && mysql_num_rows($double_mail) != false) $error = 'Такой email уже зарегистрирован!';
elseif (!isset($sex)) $error = 'Не выбран пол!';
elseif (empty($code)) $error = 'Не введен проверочный код!';
elseif ($_SESSION['captcha'] != $code) $error = 'Не верный проверочный код!';
if (empty($error)) {
$now = date('d-m-y');
$ins_str = "INSERT INTO `users` SET
`user` = '$user',
`pass` = '$pass',
`date` = '$now',
`sex` = '$sex',
`email` = '$email',
`icq` = '$icq',
`know` = '$know',
`city` = '$town',
`latuser` = '$latuser',
`user_ip` = '$ipl',
`user_soft` = '" . xss($agent) . "',
`mod_reg` = '$mod_reg'";
if (mysql_query($ins_str))
{
$myid = mysql_insert_id();
$_SESSION['us'] = $myid;
$_SESSION['ps'] = $pass;
setcookie('us', $myid, time() + 604800, '/');
setcookie('ps', $pass, time() + 604800, '/');
if (!empty($email))
{
$subject = 'Регистрация на ' . $site;
$regmail = 'Здравствуйте ' . $_SESSION['reg_user'] . '!<br/>
Вы были успешно зарегистрированы в клубе мастеров ' . $site . '.<br/>
Ваши данные для входа:<br/>
логин - ' . $_SESSION['reg_user'] . '<br/>
пароль - ' . $pass . '<br/>
Ссылка автовхода - http://' . $site . '/?us='.$myid.'&ps='.$pass.'<br/>
<br/>
Спасибо за регистрацию!<br/>
С уважением, Администрация ' . $site . '.';
$adds = "From: "password@$_SERVER[HTTP_HOST]" <password@$site>n";
$adds = "Content-Type: text/html; charset=utf-8n";
mail($email, '=?utf-8?B?' . base64_encode($subject) . '?=', $regmail, $adds);
}
unset($_SESSION['captcha']);
}
else
{
unset($_SESSION['captcha']);
$error = mysql_error() . '<br/>';
}
}
if (empty($error))
{
unset($_SESSION['captcha']);
$lid = mysql_fetch_array(mysql_query("SELECT id FROM users ORDER BY id DESC LIMIT 1"));
echo 'Здравствуй <b>' . $user . '</b>! Поздравляем с успешной регистрацией.
<br/>
' . ($email != '' ? 'На ваш email было отправлено письмо с данными для входа на сайт.<br/>' : '') . '
Автологин: <input type="text" value="http://'.$site.'/?us='.$lid[0].'&ps='.$pass.'"/>
<br/>
» <a href="/index.php"><span style="color:#0000FF;">Войти</span></a>';
include 'system/foot.php';
exit();
} else {
unset($_SESSION['captcha']);
err($error);
}
}
if (!isset($_SESSION['reg_user']))
{
header('Location: ?');
die();
}
if (!empty($error) || !isset($_GET['ok'])) {
$_SESSION['captcha'] = mt_rand(100, 999);
$redStar = '<span style="color:#FF0000;">*</span>';
echo $div_menu . 'Шаг 2 из 2' . $div_end . '
<FORM method="POST" action="reg.php?mod=step3" name="auth">
Ваш ник: <b>' . $_SESSION['reg_user'] . '</b>
' . $block . '
<div>
' . $redStar . ' <label>Пароль:</label>
<br/>
<input type="password" name="pass" maxlength="20" title="Пароль"/>
<br/>
' . $redStar . ' <label>Повтор пароля:</label>
<br/>
<input type="password" name="pass2" maxlength="20" title="Повтор пароля"/>
<br/>
' . $redStar . ' <label>Ваш пол:</label>
<br/>
<input type="radio" name="sex" checked value="2"/> М
<input type="radio" name="sex" value="1"/> Ж
<br/>
' . $redStar . ' <label>Ваш город:</label>
<br/>
<input type="text" name="town" maxlength="20" title="Town"/>
<br/>
<label>Email:</label>
<br/>
<input type="text" name="email" maxlength="30" title="Email"/>
<br/>
<label>ICQ:</label>
<br/>
<input type="text" name="icq" size="10" maxlength="10" title="icq"/>
<br/>
<label>Деятельность:</label>
<br/>
<select name="know">
<option value="0">-</option>
<option value="1">Кодер</option>
<option value="2">Дизайнер</option>
<option value="3">Мастер</option>
<option value="4">Продавец</option>
<option value="5">Кредитор</option>
</select>
<br/>
' . $redStar . ' <label>Цифры с картинки:</label>
<br/>
<img src="captcha.php?' . rand(0, 999) . '" alt=""/>
<br/>
<input type="text" name="code" size="3" maxlength="3" format="*N" title="code"/>
<br/>
<input type="submit" value="Завершить" name="ok"/>
</div>
</form>
' . $block . '« <a href="reg.php?mod=step2">Назад</a>';
}
break;
}
include 'system/foot.php';
ob_end_flush();
?>