Файл: reg.php
Строк: 192
<?php
require 'lang_inc.php';
ob_start();
session_start();
// Если попытка повторной авторизиции
if (!empty($_COOKIE['us']) && !empty($_COOKIE['ps'])) {
header('Location: index.php?lg='.$lg.'&' . $ref);
die();
}
include 'mod_reg.dat';
require 'config.php';
$link = connect_db();
include 'head.php';
/*/ если не зареган
if (empty($_SESSION['us'])) {
echo '<div style="text-align: center; margin: 2px;"><img src="ico/logo.png" alt=""/></div>';
}*/
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 . ''.$lang['Регистрация'].'' . $div_end;
if ($mod_reg == 0) {
err(''.$lang['Регистрация временно закрыта'].'!');
include 'foot.php';
exit();
}
$mod = isset($_GET['mod']) ? $_GET['mod'] : '';
switch($mod) {
default:
echo $div_razdel . '<b>'.$lang['Шаг'].' 1</b>' . $div_end;
echo $div_left . ''.$lang['Приветствуем тебя на планете общения'].' ' . $site . '!<br/><br/>
<b>'.$lang['ты сможешь'].':</b><br/>
- '.$lang['находить друзей и общаться'].'<br/>
- '.$lang['хранить свои файлы и делиться ими с другими'].'<br/>
- '.$lang['вести свои заметки'].'<br/>
- '.$lang['обсудить что-либо в чате и на форуме'].'<br/>
- '.$lang['и много других вещей'].'...<br/><br/>
'.$lang['И, конечно, на'].' ' . $site . ' '.$lang['полностью бесплатно'].'!<br/>
<br/>
<a href="reg.php?mod=step2&lg='.$lg.'"><b>
'.$lang['Продолжить регистрацию'].'</b></a> ('.$lang['нажимая эту ссылку, ты подтверждаешь своё согласие с условиями сайта'].'.)
<br/><br/>
'.$lang['Или'].' <a href="aut.php?lg='.$lg.'">'.$lang['Входи'].'</a>, '.$lang['если ты уже зарегистрирован'].'.<br/>
' . $block . '
<a href="index.php?lg='.$lg.'&' . $ref . '">'.$lang['Назад'].'</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>'.$lang['Ник может содержать только знаки латинского алфавита знак _ и цифры(кроме 0)'].'</li></ul></div>';
}
elseif (!preg_match('#^([a-z1-9])+$#ui', $first_l)) {
$error .= '<div class="errors"><ul><li>'.$lang['Ник должен начинаться с латинской буквы или цифры'].'!</li></ul></div>';
}
elseif (!preg_match('#^([a-z1-9])+$#ui', $last_l)) {
$error .= '<div class="errors"><ul><li>'.$lang['Ник должен заканчиваться латинской буквой или цифрой'].'!</li></ul></div>';
}
elseif (ctype_digit($user)) $error .= '<div class="errors"><ul><li>'.$lang['Ник не должен состоять из одних цифр'].'!</li></ul></div>';
elseif (mb_strlen($user, 'UTF-8') < 4) $error .= '<div class="errors"><ul><li>'.$lang['Ник не должен содержать менее 4х знаков'].'!</li></ul></div>';
elseif (mb_strlen($user, 'UTF-8') > 15) $error .= '<div class="errors"><ul><li>'.$lang['Ник не должен превышать 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 . '&lg='.$lg.'">' . $user . $j . '</a><br/>';
$vyvod = $div_left . ''.$lang['Вы можете использовать похожие ники'].':<br/>' . $no_nick . $div_end;
}
}
$error .= '<div class="errors"><ul><li>'.$lang['Указанный Вами ник'].' <b>' . $user . '</b> '.$lang['уже занят'].'!</li></ul></div>' . $vyvod;
}
if (!empty($error)) {
echo $error;
} else {
$_SESSION['reg_user'] = $user;
header('Location: ' . htmlspecialchars_decode('reg.php?mod=step3&lg='.$lg.''));
}
}
$n = (isset($_GET['n'])) ? $_SESSION['empty_user'] . my_int($_GET['n']) : NULL;
echo $div_menu . ''.$lang['Шаг 1 из 2'].'
' . $div_end . $div_left . '
<form method="POST" action="reg.php?mod=step2&lg='.$lg.'" name="auth">
<div>'.$lang['Введите желаемый ник, чтобы проверить не занят ли он'].':
<br/>
<b>' . $site . '</b>/
<input type="text" name="user" maxlength="12" title="nick" value="'.$n.'"/>
<br/>
<small>('.$lang['Знаки латинского алфавита и цифры(кроме 0). Только цифры и русские буквы нельзя! Длина от 4 до 20 символов'].'</small><br/>
<input type="submit" value="'.$lang['Далее'].'" name="enter"/>
</div>
</form>
' . $div_razdel . '<a href="reg.php?mod=step1&lg='.$lg.'">'.$lang['Назад'].'</a>' . $div_end . $div_end;
break;
case step3:
if (empty($_SESSION['reg_user'])) header('Location: reg.php?lg='.$lg.'&' . $ref);
if (isset($_GET['ok'])) {
$error = '';
$user = $_SESSION['reg_user'];
$first_l = mb_substr($user, 0, 1, 'UTF8');
$sex = int($_POST['sex']);
$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 .= ''.$lang['Ник может содержать только знаки латинского алфавита, знак _ и цифры(кроме 0)'].'';
elseif (!preg_match('#^([a-z1-9])+$#ui', $first_l)) $error .= ''.$lang['Ник должен начинаться с латинской буквы или цифры'].'!';
elseif (!preg_match('#^([a-z1-9])+$#ui', $last_l)) $error .= ''.$lang['Ник должен заканчиваться латинской буквой или цифрой'].'!';
elseif (mysql_num_rows($sql)) $error .= ''.$lang['Указанный Вами ник'].' <b>' . $user . '</b> '.$lang['уже занят'].'!';
elseif (mb_strlen($user, 'UTF-8') < 4) $error .= ''.$lang['Ник не должен содержать менее 4х знаков'].'!';
elseif (mb_strlen($user, 'UTF-8') > 15) $error .= ''.$lang['Ник не должен превышать 15 знаков'].'!';
elseif (ctype_digit($user)) $error .= ''.$lang['Ник не должен состоять из одних цифр'].'!';
elseif (empty($_POST['pass'])) $error .= ''.$lang['Не заполнено поле пароль'].'!';
elseif (empty($_POST['pass2'])) $error .= ''.$lang['Не заполнено поле подтверждения пароля'].'!';
elseif (!preg_match("!^[a-z0-9]+$!i", $_POST['pass'])) $error .= ''.$lang['В пароле обнаружены запрещенные знаки'].'!';
elseif (mb_strlen($_POST['pass'], 'UTF8') < 6) $error .= ''.$lang['Пароль не должен быть короче шести символов'].'!';
elseif ($_POST['pass'] !== $_POST['pass2']) $error .= ''.$lang['Пароли не совпадают'].'!';
elseif (is_numeric($_POST['pass'])) $error .= ''.$lang['Слишком простой пароль, используйте буквы и цифры'].'!';
elseif (!isset($sex)) $error .= ''.$lang['Не выбран пол'].'!';
elseif (empty($_POST['code'])) $error .= ''.$lang['Не введен проверочный код'].'!';
elseif ($_SESSION['captcha'] != $_POST['code']) $error .= ''.$lang['Не верный проверочный код'].'!';
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 . "',
`sex` = '" . $sex . "',
`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 = ''.$lang['Рекомендуем для начала заполнить свою анкету и прочитать'].' <a href="faq.php?lg='.$lg.''.$ref.'">'.$lang['Путеводитель'].'</a>.
<br/>
'.$lang['Обращаем Ваше внимание на то, что'].' "<a href="edit.php?lg='.$lg.'&'.$ref.'">'.$lang['ред'].'</a>" '.$lang['на Вашей главной странице будет красным'].'
<br/>
'.$lang['до тех пор, пока страница не заполнена хотябы на'].' 30%.
<br/>
'.$lang['Чем выше "%", тем выше Вы будете в поиске и в списках друзей'].'.
<br/>
'.$lang['В'].' ' . $site . ' '.$lang['нет ничего сложного, потратье 5 минут, чтобы освоиться и Вы будете с нами всегда'].'.
<br/>
'.$lang['И не ждите, что вам сразу начнуть писать другие участники - ищите сами, знакомтесь'].',
<br/>
'.$lang['общайтесь и тогда всё у вас получится'].'!
<br/>
'.$lang['Мы желаем Вам приятного общения, поиска старых и новых друзей и безмерной любви'].'!';
$m2 = ''.$lang['Здравствуй'].', ' . $user . '!
<br/>
'.$lang['Приветствуем тебя на'].' ' . $site . '
<br/>
'.$lang['Теперь у тебя есть собственный сайт в сети по адресу'].' http://' . $site . '/'.$last_me[id].'
<br/>
'.$lang['Храни тут свои файлы, фотографии и тд, и они всегда будут доступны как с мобильного телефона, так и с компьютера'].'.
<br/>
'.$lang['Обязательно поделись ссылкой на свой сайт с друзьями, пусть они знают о том, что происходит в твоей жизни'].'.';
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?lg='.$lg.'&' . $ref);
} else {
echo '<div class="errors"><ul><li>' . $error . '</li></ul></div>';
}
}
if (!isset($_SESSION['reg_user']))
{
header('Location: reg.php?lg='.$lg.'');
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 . ''.$lang['Шаг 2 из 2'].'' . $div_end . '
<FORM method="POST" action="reg.php?mod=step3&ok&lg='.$lg.'" name="auth">
' . $div_tworazdel . ''.$lang['Ник'].': <b>' . $_SESSION['reg_user'] . '</b>' . $div_end . $div_razdel . '
- '.$lang['Придумайте себе сложный пароль, латинские буквы и цифры'].'<br/>
- '.$lang['Пароль чувствителен к регистру(sobaka и sObAKA - разные пароли)'].'.<br/>
- '.$lang['И не вводите пароль такой же как Ник'].'!
' . $div_end . '
<div>
'.$lang['Выберите ваш пол'].':
<br/>
<input type="radio" name="sex" checked value="2"/> '.$lang['М'].'
<input type="radio" name="sex" value="1"/> '.$lang['Ж'].'
<br/>
'.$lang['Пароль'].':
<br/>
<input type="password" name="pass" maxlength="20" title="'.$lang['Пароль'].'"/>
<br/>
'.$lang['Повтор пароля'].':
<br/>
<input type="password" name="pass2" maxlength="20" title="'.$lang['Повтор пароля'].'"/>
<br/>
'.$lang['Введите цыфры с картинки'].':<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="'.$lang['Завершить'].'" name="enter"/>
</div>
</form>
' . $div_razdel . '<a href="reg.php?mod=step2&lg='.$lg.'">'.$lang['Назад'].'</a>' . $div_end . $div_end;
}
break;
}
include 'foot.php';
ob_end_flush();
?>