Файл: 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';
?>