Файл: reg.php
Строк: 104
<?php
ob_start();
session_start();
// Если попытка повторной авторизиции
if (!empty($_COOKIE['us']) && !empty($_COOKIE['ps'])) {
header('Location: index.php?' . $ref);
die();
}
include 'mod_reg.dat';
require 'config.php';
$link = connect_db();
include '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;
}
$ref = mt_rand(10000, 1000000);
echo $div_title . 'Регистрация' . $div_end;
if ($mod_reg == 0) {
err('Регистрация временно закрыта!');
include 'foot.php';
exit();
}
$mod = isset($_GET['mod']) ? $_GET['mod'] : '';
switch($mod) {
default:
echo $div_razdel . '<b>Шаг 1</b>' . $div_end;
echo $div_left . 'Приветствуем тебя на планете общения ' . $site . '!<br/><br/>
<b>Сразу после регистрации тебе будет доступна:</b><br/>
- личная страничка по адресу http://<span style="color:#FF0000;">ТвойНик</span><span style="color:#0000FF;">.' . $site . '</span><br/>
<b>А еще ты сможешь:</b><br/>
- находить друзей и общаться<br/>
- хранить свои файлы и делиться ими с другими<br/>
- вести свои заметки<br/>
- обсудить что-либо в чате и на форуме<br/>
- и много других вещей...<br/><br/>
И, конечно, на ' . $site . ' полностью бесплатно!<br/>
<br/>
<a href="reg.php?mod=step2"><b>
Продолжить регистрацию</b></a> (нажимая эту ссылку, ты подтверждаешь своё согласие с условиями сайта.)
<br/><br/>
Или <a href="aut.php?">Входи</a>, если ты уже зарегистрирован.<br/>
' . $block . '
<a href="index.php?' . $ref . '">Назад</a>' . $div_end;
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-z1-9_])+$/ui', $user))
{
$error .= '<div class="errors"><ul><li>Ник может содержать только знаки латинского алфавита знак _ и цифры(кроме 0)</li></ul></div>';
}
elseif (!preg_match('#^([a-z1-9])+$#ui', $first_l)) {
$error .= '<div class="errors"><ul><li>Ник должен начинаться с латинской буквы или цифры!</li></ul></div>';
}
elseif (!preg_match('#^([a-z1-9])+$#ui', $last_l)) {
$error .= '<div class="errors"><ul><li>Ник должен заканчиваться латинской буквой или цифрой!</li></ul></div>';
}
elseif (ctype_digit($user)) $error .= '<div class="errors"><ul><li>Ник не должен состоять из одних цифр!</li></ul></div>';
elseif (mb_strlen($user, 'UTF-8') < 4) $error .= '<div class="errors"><ul><li>Ник не должен содержать менее 4х знаков!</li></ul></div>';
elseif (mb_strlen($user, 'UTF-8') > 15) $error .= '<div class="errors"><ul><li>Ник не должен превышать 15 знаков!</li></ul></div>';
$latuser = mb_strtolower($user, 'UTF8');
$sql = mysql_query("SELECT `id` FROM `users` WHERE `latuser` = '$latuser'");
if (mysql_num_rows($sql) != FALSE) {
$_SESSION['empty_user'] = $user;
for($j = 1; $j < 10; $j++) {
$no_em = mysql_query("SELECT COUNT(*) FROM `users` WHERE
`latuser` = '" . $latuser . $j . "'");
if (mysql_result($no_em, 0) == 0) {
$no_nick .= '<a href="reg.php?mod=step2&n=' . $j . '">' . $user . $j . '</a><br/>';
$vyvod = $div_left . 'Вы можете использовать похожие ники:<br/>' . $no_nick . $div_end;
}
}
$error .= '<div class="errors"><ul><li>Указанный Вами ник <b>' . $user . '</b> уже занят!</li></ul></div>' . $vyvod;
}
if (!empty($error)) {
echo $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 . $div_left . '
<form method="POST" action="reg.php?mod=step2" name="auth">
<div>Введите желаемый ник, чтобы проверить не занят ли он:
<br/>
<b>http://</b><input type="text" name="user" maxlength="12" title="nick" value="'.$n.'"/>
<b>' . $site . '</b>
<br/>
<small>(Знаки латинского алфавита и цифры(кроме 0). Только цифры и русские буквы нельзя! Длина от 4 до 20 символов</small><br/>
<input type="submit" value="Далее" name="enter"/>
</div>
</form>
' . $div_razdel . '<a href="reg.php?mod=step1">Назад</a>' . $div_end . $div_end;
break;
case step3:
if (empty($_SESSION['reg_user'])) header('Location: reg.php?' . $ref);
if (isset($_GET['ok'])) {
$error = '';
$user = $_SESSION['reg_user'];
$first_l = mb_substr($user, 0, 1, 'UTF8');
$last_l = mb_substr($user, -1, 1, 'UTF8');
$latuser = mb_strtolower($user, 'UTF8');
$sql = mysql_query("SELECT `id` FROM `users` WHERE `latuser` = '$latuser' LIMIT 1");
if (!preg_match('/^([a-z1-9_])+$/ui', $user)) $error .= 'Ник может содержать только знаки латинского алфавита, знак _ и цифры(кроме 0)';
elseif (!preg_match('#^([a-z1-9])+$#ui', $first_l)) $error .= 'Ник должен начинаться с латинской буквы или цифры!';
elseif (!preg_match('#^([a-z1-9])+$#ui', $last_l)) $error .= 'Ник должен заканчиваться латинской буквой или цифрой!';
elseif (mysql_num_rows($sql)) $error .= 'Указанный Вами ник <b>' . $user . '</b> уже занят!';
elseif (mb_strlen($user, 'UTF-8') < 4) $error .= 'Ник не должен содержать менее 4х знаков!';
elseif (mb_strlen($user, 'UTF-8') > 15) $error .= 'Ник не должен превышать 15 знаков!';
elseif (ctype_digit($user)) $error .= 'Ник не должен состоять из одних цифр!';
elseif (empty($_POST['pass'])) $error .= 'Не заполнено поле пароль!';
elseif (empty($_POST['pass2'])) $error .= 'Не заполнено поле подтверждения пароля!';
elseif (!preg_match("!^[a-z0-9]+$!i", $_POST['pass'])) $error .= 'В пароле обнаружены запрещенные знаки!';
elseif (mb_strlen($_POST['pass'], 'UTF8') < 6) $error .= 'Пароль не должен быть короче шести символов!';
elseif ($_POST['pass'] !== $_POST['pass2']) $error .= 'Пароли не совпадают!';
elseif (is_numeric($_POST['pass'])) $error .= 'Слишком простой пароль, используйте буквы и цифры!';
elseif (empty($_POST['code'])) $error .= 'Не введен проверочный код!';
elseif ($_SESSION['captcha'] != $_POST['code']) $error .= 'Не верный проверочный код!';
if (empty($error)) {
$pass = xss($_POST['pass']);
$pass2 = xss($_POST['pass2']);
######
$num_balls = mysql_fetch_array(mysql_query("SELECT `num_balls` FROM `setting` WHERE `ids` = '1'"));
######
$now = date('d-m-y');
$ins_str = "INSERT INTO `users` SET
`user` = '" . $user . "',
`pass` = '" . $pass . "',
`date` = '" . $now . "',
`balls` = '" . $num_balls[0] . "',
`latuser` = '" . $latuser . "',
`user_ip` = '" . xss($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, '/');
unset($_SESSION['reg_user']);
}
else
{
$error .= mysql_error() . '<br/>';
}
}
if (empty($error))
{
$last_me = mysql_fetch_array(mysql_query("SELECT `id` FROM `users` ORDER BY `id` DESC LIMIT 1"));
###################################################
$m1 = 'Рекомендуем для начала заполнить свою анкету и прочитать <a href="faq.php?'.$ref.'">Путеводитель</a>.
<br/>
Обращаем Ваше внимание на то, что "<a href="edit.php?'.$ref.'">ред</a>" на Вашей главной странице будет красным
<br/>
до тех пор, пока страница не заполнена хотябы на 30%.
<br/>
Чем выше "%", тем выше Вы будете в поиске и в списках друзей.
<br/>
В ' . $site . ' нет ничего сложного, потратье 5 минут, чтобы освоиться и Вы будете с нами всегда.
<br/>
И не ждите, что вам сразу начнуть писать другие участники - ищите сами, знакомтесь,
<br/>
общайтесь и тогда всё у вас получится!
<br/>
Мы желаем Вам приятного общения, поиска старых и новых друзей и безмерной любви!';
$m2 = 'Здравствуй, ' . $user . '!
<br/>
Приветствуем тебя на ' . $site . '
<br/>
Теперь у тебя есть собственный сайт в сети по адресу http://' . $user . '.' . $site . '
<br/>
Храни тут свои файлы, фотографии и тд, и они всегда будут доступны как с мобильного телефона, так и с компьютера.
<br/>
Обязательно поделись ссылкой на свой сайт с друзьями, пусть они знают о том, что происходит в твоей жизни.';
mysql_query("INSERT INTO `letters` (`id`,`who`,`idwho`,`message`,`data`,`read`,`mod`)
VALUES (0,'0','$last_me[0]','$m1','" . time() . "','0','i')");
mysql_query("INSERT INTO `letters` (`id`,`who`,`idwho`,`message`,`data`,`read`,`mod`)
VALUES (0,'0','$last_me[0]','$m2','" . time() . "','0','i')");
###################################################
// Редирект на авторайз
header('Location: index.php?' . $ref);
} else {
echo '<div class="errors"><ul><li>' . $error . '</li></ul></div>';
}
}
if (!isset($_SESSION['reg_user']))
{
header('Location: reg.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="'.$_SERVER['REQUEST_URI'].'&Code">Не вижу код</a></small><br/>';*/
echo $div_left . $div_menu . 'Шаг 2 из 2' . $div_end . '
<FORM method="POST" action="reg.php?mod=step3&ok" name="auth">
' . $div_tworazdel . 'Ник: <b>' . $_SESSION['reg_user'] . '</b>' . $div_end . $div_razdel . '
- Придумайте себе сложный пароль, латинские буквы и цифры<br/>
- Пароль чувствителен к регистру(sobaka и sObAKA - разные пароли).<br/>
- И не вводите пароль такой же как Ник!
' . $div_end . '
<div>
Пароль:
<br/>
<input type="password" name="pass" maxlength="20" title="Пароль"/>
<br/>
Повтор пароля:
<br/>
<input type="password" name="pass2" maxlength="20" title="Повтор пароля"/>
<br/>
Введите цыфры с картинки:<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="enter"/>
</div>
</form>
' . $div_razdel . '<a href="reg.php?mod=step2">Назад</a>' . $div_end . $div_end;
}
break;
}
include 'foot.php';
ob_end_flush();
?>