Файл: mydcms.tk/user/registration.php
Строк: 143
<?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/>
<a href="/user/registration.php?mod=step2">
<b style="color:#00AA00;">Продолжить регистрацию</b></a>
(нажимая эту ссылку, ты подтверждаешь своё согласие с условиями сайта.)
<br/>
Или <a href="/user/login.php"><span style="color:#0000FF;">Входи</span></a>, если ты уже зарегистрирован.<br/>';
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_])+$/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) {
$_SESSION['empty_user'] = $user;
for($j = 1; $j < 10; ++$j) {
$no_em = mysql_query("SELECT COUNT(id) FROM `users` WHERE `latuser` = '" . $latuser . $j . "'");
if (mysql_result($no_em, 0) == 0) {
$no_nick .= '<a href="/user/registration.php?mod=step2&n=' . $j . '">' . $user . $j . '</a><br/>';
$vyvod = $div_left . 'Вы можете использовать похожие ники:<br/>' . $no_nick . $div_end;
}
}
$error .= 'Указанный Вами ник ' . $user . ' уже занят!' . $vyvod;
}
if (!empty($error)) {
err($error);
} else {
$_SESSION['reg_user'] = $user;
header('Location: ' . htmlspecialchars_decode('/user/registration.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="/user/registration.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>
<div class="menu2"><a class="ssyl2" href="/user/registration.php?mod=step1">Назад</a></div>';
break;
case step3:
if (empty($_SESSION['reg_user'])) header('Location: /user/registration.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']);
$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 (!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 .= 'Не выбран пол!';
if (empty($error)) {
$now = date('d-m-y');
$ins_str = "INSERT INTO `users` SET
`user` = '$user',
`pass` = '$pass',
`avka` = '1',
`date` = '$now',
`rekl_sk` = '1',
`sex` = '$sex',
`money` = '0',
`email` = '$email',
`icq` = '$icq',
`know` = '$know',
`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="/?"><span style="color:#0000FF;">Войти</span></a>';
include '../system/foot.php';
exit();
} else {
unset($_SESSION['captcha']);
err($error);
}
}
if (!isset($_SESSION['reg_user']))
{
header('Location: /user/registration.php');
die();
}
if (!empty($error) || !isset($_GET['ok'])) {
$_SESSION['captcha'] = mt_rand(100, 999);
if (isset($_GET['Code'])) $NoCode = captcha($_SESSION['captcha']) . '<br/>';
else $NoCode = '<img src="captcha.php?' . rand(0, 999) . '" alt=""/><br/>
<small><a href="?Code">Не вижу код</a></small><br/>';
$redStar = '<span style="color:#FF0000;">*</span>';
echo $div_menu . 'Шаг 2 из 2' . $div_end;
echo '<FORM method="POST" action="/user/registration.php?mod=step3" name="auth">
Ваш ник: <b>' . $_SESSION['reg_user'] . '</b>
<div>
<label>Пароль:</label>
<br/>
<input type="password" name="pass" maxlength="20" title="Пароль"/>
<br/>
<label>Повтор пароля:</label>
<br/>
<input type="password" name="pass2" maxlength="20" title="Повтор пароля"/>
<br/>
<label>Ваш пол:</label>
<br/>
<input type="radio" name="sex" checked value="2"/> М
<input type="radio" name="sex" value="1"/> Ж
<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/>
<br/>
<input type="submit" value="Завершить" name="ok"/>
</div>
</form>';
echo '<div class="menu2"><a class="ssyl2" href="reg.php?mod=step2">Назад</a></div>';
}
break;
}
include '../system/foot.php';
ob_end_flush();
?>