Файл: reg.php
Строк: 116
<?php
include 'sys/sid.php';
require 'sys/config.php';
include 'sys/user.php';
include 'sys/head.php';
if (isset($_SESSION['us']) && isset($_SESSION['ps']))
{
header('Location: /');
die();
}
if (isset($_POST['next']))
{
$nick = trim(mysql_real_escape_string(char($_POST['nick'], 0)));
$login = trim(mysql_real_escape_string(char($_POST['login'], 0)));
$pass = trim(mysql_real_escape_string(char($_POST['pass'], 0)));
$race = number($_POST['race']);
$code = trim(mysql_real_escape_string(char($_POST['code'], 0)));
$_COOKIE['nick'] = $nick;
$_COOKIE['login'] = $login;
$_COOKIE['pass'] = $pass;
$_COOKIE['race'] = $race;
$sql = mysql_query("SELECT `id` FROM `users` WHERE `login` = '$login' LIMIT 1");
$sql2 = mysql_query("SELECT `id` FROM `users` WHERE `nick` = '$nick' LIMIT 1");
$first_l = mb_substr($login, 0, 1, 'UTF-8');
$last_l = mb_substr($login, -1, 1, 'UTF-8');
if (empty($login)) $error = 'Необходимо заполнить поле логин!';
elseif (empty($nick)) $error = 'Необходимо заполнить поле ник!';
elseif (mb_strtolower($login, 'UTF-8') == mb_strtolower($nick, 'UTF-8')) $error = 'Логин не может быть таким же, как и ник!';
elseif (!preg_match('/^([a-z1-9_])+$/i', $login)) $error = 'Логин содержит запрещенные символы!';
elseif (!preg_match('#^([a-z1-9])+$#i', $first_l)) $error = 'Логин должен начинаться с буквы или цифры!';
elseif (!preg_match('#^([a-z1-9])+$#i', $last_l)) $error = 'Логин должен заканчиваться буквой или цифрой!';
elseif (!preg_match('/^([a-z1-9_])+$/i', $nick)) $error = 'Ник содержит запрещенные символы!';
elseif (mysql_num_rows($sql) != false) $error = 'Указанный Вами логин <b>' . $login . '</b> уже занят!';
elseif (mb_strlen($login, 'UTF-8') < 3) $error = 'Логин не должен содержать менее 3х знаков!';
elseif (mb_strlen($login, 'UTF-8') > 15) $error = 'Логин не должен превышать 15 знаков!';
elseif (ctype_digit($login)) $error = 'Логин не должен состоять из одних цифр!';
elseif (mysql_num_rows($sql2) != false) $error = 'Указанный Вами ник <b>' . $nick . '</b> уже занят!';
elseif (mb_strlen($nick, 'UTF-8') < 4) $error = 'Ник не должен содержать менее 4х знаков!';
elseif (mb_strlen($nick, 'UTF-8') > 10) $error = 'Ник не должен превышать 10 знаков!';
elseif (ctype_digit($nick)) $error = 'Ник не должен состоять из одних цифр!';
elseif (empty($pass)) $error = 'Не заполнено поле пароль!';
elseif (!preg_match("!^[a-z0-9]+$!i", $pass)) $error = 'В пароле обнаружены запрещенные знаки!';
elseif (mb_strlen($pass, 'UTF-8') < 6) $error = 'Пароль не должен быть короче 6ти символов!';
elseif (mb_strlen($pass, 'UTF-8') > 20) $error = 'Пароль не должен быть длиннее 20ти символов!';
elseif (is_numeric($pass)) $error = 'Слишком простой пароль, используйте буквы и цифры!';
elseif (empty($code)) { $error = 'Не введен проверочный код!'; unset($_SESSION['captcha']); }
elseif ($_SESSION['captcha'] != $code) { $error = 'Не верный проверочный код!'; unset($_SESSION['captcha']); }
if (empty($error))
{
unset($_COOKIE['nick']);
unset($_COOKIE['login']);
unset($_COOKIE['pass']);
unset($_COOKIE['race']);
unset($_SESSION['captcha']);
$pass = md5(sha1($pass));
$rand_1 = mt_rand(-98, 98);
$rand_2 = mt_rand(-98, 98);
$control = mysql_query("SELECT id FROM users WHERE coor_x = '$rand_1' OR coor_y = '$rand_2' LIMIT 1");
function id()
{
$rand_1 = mt_rand(-98, 98);
$rand_2 = mt_rand(-98, 98);
if (mysql_num_rows($control) == 0)
{
return $rand_1 . ':' . $rand_2;
}
else
{
return id();
}
}
$expl = explode(':', id());
mysql_query("INSERT INTO users SET
login = '$login',
nick = '$nick',
password = '$pass',
date_reg = '$rtime',
ip = '$ipl',
race = '$race',
soft = '".char($agent, 1)."',
coor_x = '$expl[0]',
coor_y = '$expl[1]',
untouch = '" . ($rtime + 24 * 60 * 60) . "'");
header('location: /aut.php?ok');
}
else echo err($error);
}
require 'res.php';
echo '<table><tr><td style="float:left;"><img src="images/advisor.png" alt=""/></td><td style="background:#CCC;line-height: 100%;color:#484848;border: 2px solid #FF3370;border-radius:7px;line-height: 100%;">';
echo '<form method="post" action="reg.php?'.rand(1000, 9999).'">
Логин (для входа):<br/>
<input type="text" name="login" value="'.(!empty($_COOKIE['login']) ? $_COOKIE['login'] : '').'"/>
<br/>
Ник (для отображения в игре):<br/>
<input type="text" name="nick" value="'.(!empty($_COOKIE['nick']) ? $_COOKIE['nick'] : '').'"/>
<br/>
Пароль:<br/>
<input type="password" name="pass" value="'.(!empty($_COOKIE['pass']) ? $_COOKIE['pass'] : '').'"/>
<br/>
Сторона: <a href="help.php?q=race">(?)</a><br/>
<select name="race">
<option '.(!empty($_COOKIE['race']) && $_COOKIE['race'] == 1 ? 'selected' : '').' value="1">Люди</option>
<option '.(!empty($_COOKIE['race']) && $_COOKIE['race'] == 2 ? 'selected' : '').' value="2">Некроманты</option>
</select>
<br/>
Код с картинки:<br/>
<img src="captcha.php?'.rand(0, 9999).'" alt="code"/>
<br/>
<input type="text" name="code" maxlength="4"/>
<br/>
<input type="submit" name="next" value="OK"/>
</form>
</td></tr></table>
<a href="index.php">На главную</a>';
include 'sys/foot.php';
?>