Вход Регистрация
Файл: introduce.php
Строк: 269
<?php
require_once 'core/system.php';
echo 
reg();
$header 'Информационный раздел';
require_once 
'core/head.php';

echo
'<div class="header-text-razdel">';
    echo
'Начало пути...';
echo
'</div>';

// Кроем доступ для авторизированных юз
if($_COOKIE['id'] && $_COOKIE['hash']) exit('Вы уже прошли авторизацию!');
$m htmlspecialchars($_GET['m']);
$act $m;
switch(
$m
{
    
// запрос на восстановление пароля
    
case 'ren_pass':
        if(!
$_POST['mail']) // Показываем форму для ввода мыла
        
{
                
$code mt_rand(09999);
                
$_SESSION['code'] = $code;
                
                echo
'
                    <center>
                        <div class="title">
                            Восстановление данных
                        </div><br />
                    </center>'
;
                    
                echo
'<form method="POST" action="" name="auth">
                <b>E-mail:</b><br/> 
                <input type="text" name="mail"/><br/><br/>
                <b>Код:</b> <img src="/capcha.php?text='
.$code.'" width="" height="" alt="*"> <br /><br/>
                <b>Проверочный код:</b><br/> 
                <input type="text" name="code"/><br/>
                <input type="submit" class="ibutton" value="Восстановить!" name="enter"><br/>
                </form>'
;
                            
        } else { 
// обработка данных с форм
        
            
$err = array();

            
# проверяем, сущестует ли пользователь с таким мылом
            
$post_mail trim(mysql_real_escape_string(htmlspecialchars($_POST['mail'])));
            if(!
mysql_result(mysql_query("SELECT COUNT(*) FROM `user` WHERE `mail`='".$post_mail."'"), 0))
            {
                
$err[] = "Пользователь с  соответствующим E-mail не найден базе данных";
            }
            
            if(!
$post_mail)
            {
                
$err[] = "Не верный E-mail!";        
            }
            
            if(
$_SESSION['code'] != $_POST['code'])
            {
                
$err[] = "Не верный проверочный код!";        
            }
            
            
# Если нет ошибок, то шлем ссылку для сброса паса
            
if(count($err) == 0)
            {
                
$mail_ren_code md5(generateCode(11).$post_mail);
                
                
mysql_query ("Update `user` set  `mail_ren_code`='".$mail_ren_code."' WHERE  `mail`='".$post_mail."'");
                
                
$title $site_name;
                
$mess 'Здравствуйте!
                Вы получили это сообщение так как на сайте '
.$site_adr.' поступил запрос на восстановления пароля от Вашего аккаунта!
                        Для подтверждения восстановления пароля перейдите по ссылке http://'
.$site_adr.'/introduce.php?m=ren_pass_ok&ren_pass_ok='.$mail_ren_code;
                
                
mail($post_mail$title$mess,
                
"From: info@".$site_adr." rn"
                
."Content-Type: text/plain; charset="utf-8" rn"
                
."X-Mailer: PHP/" phpversion());
                
                
/// Запишем mail для использования в качестве идентефикатора
                
$_SESSION['set_mail'] = $post_mail;
                
                echo
'Инструкции отправлены на указанный E-mail <br /> <small>(Если сообщение не приходит продолжительное время, проверьте папку Спам)</small> <br /><br />';
                
                echo
'
                    <form id="reg_form" action="/" method="POST">
                    <input type="submit" value="Вернуться на главную">
                    </form>
                '
;
                
                
/*Обнуляем код капчи*/
                
$_SESSION['code'] = NULL;
            } 
            else 
            {
                
                
// Запишем в сессию значение полей, что бы юзер не вводил их повторно
                    
$_SESSION['login'] = trim(mysql_real_escape_string(htmlspecialchars($_POST['login'])));
                    
$_SESSION['name'] = trim(mysql_real_escape_string(htmlspecialchars($_POST['name'])));
                    
$_SESSION['mail'] = trim(mysql_real_escape_string(htmlspecialchars($_POST['mail'])));
                    
                    
$_SESSION['code'] = NULL;
                    
                    
                echo
'<b>При попытке восстановления доступа произошли следующие ошибки:</b> <br />';
                    
                foreach(
$err AS $error)
                {
                    echo 
'- '.$error.'<br />';
                }
                
                echo
'
                    <form id="reg_form" action="" method="POST">
                    <input type="submit" value="назад">
                    </form>
                '
;
            }
        }
        
    break;  
// Закончил   Запрос восстановление пароля
    
    // Подтверждение смены пароля
    
case 'ren_pass_ok':
    
        
$err = array();

        
# Проверяем соответствие проверочного кода
        
$ren_pass_ok trim(mysql_real_escape_string(htmlspecialchars($_GET['ren_pass_ok'])));
        
$set_mail $_SESSION['set_mail'];
        if(!
mysql_result(mysql_query("SELECT COUNT(*) FROM `user` WHERE `mail_ren_code`='".$ren_pass_ok."' AND `mail` = '".$set_mail."'"), 0))
        {
            
$err[] = "Не верный код!";
        }
        
        
# Если нет ошибок, то шлем ссылку для сброса паса
        
if(count($err) == 0)
        {
            
/*Генерируем новые данные*/
            
$new_pass_or generateCode(11);
            
$new_pass md5(md5($new_pass_or));
            
            
            
$login mysql_result(mysql_query("SELECT `nick` FROM `user` WHERE `mail_ren_code`='".$ren_pass_ok."' and `mail` = '".$set_mail."'"), 0);
            
$title $site_name;
            
$mess 'Ваши данные обновлены!
                    Данные для авторизации:
                    Логин: '
.$login.'
                    Пароль: '
.$new_pass_or.'
                    C ув. Администрация '
.$site_name;
            
            
mail($set_mail$title$mess,
            
"From: info@".$site_adr." rn"
            
."Content-Type: text/plain; charset="utf-8" rn"
            
."X-Mailer: PHP/" phpversion());
            
            
            echo 
'Инструкции отправлены на контактный E-mail <br /><br />';
            echo
'
                <form id="reg_form" action="/" method="POST">
                    <input type="submit" value="Главная">
                </form>
                '
;
            
/*Обновим данные*/    
            
mysql_query ("UPDATE `user` set `pass` = '".$new_pass."', `mail_ren_code`='' WHERE `mail_ren_code`='".$ren_pass_ok."' and `mail` = '".$set_mail."'");
        
        } 
        else 
        {
            
// Запишем в сессию значение полей, что бы юзер не вводил их повторно
                
$_SESSION['login'] = trim(mysql_real_escape_string(htmlspecialchars($_POST['login'])));
                
$_SESSION['name'] = trim(mysql_real_escape_string(htmlspecialchars($_POST['name'])));
                
$_SESSION['mail'] = trim(mysql_real_escape_string(htmlspecialchars($_POST['mail'])));
                
                echo 
'<b>При попытке восстановления произошли следующие ошибки:</b> <br />';
                
            foreach(
$err AS $error)
            {
                echo
'- '.$error.' <br />';
            }
            
            echo
'<br /><br />
                    <form id="reg_form" action="/" method="POST">
                    <input type="submit" value="Главная">
                    </form>
                '
;
        }
    break; 
//Закончил подтверждение смены пароля
    
    
    // Обрабатываем запрос на регистрацию
    
case 'reg':
        
/*Блокируем повторную регу+  */
        
if($_COOKIE['id']) exit('Доступ закрыт');
        
        echo
'<div class="listing-information">';
            if(
$_POST['reg'] == 4) echo'<img src="/images/voin_gilg.png" alt="*"> <br />';
            else
            echo
'<img src="/images/bog_voin.png" alt="*"> <br />';
        
            echo
'<div class="repeat-razdel"></div>';
            
            if(empty(
$_POST['reg']))
            {
                
                
?>
                Кого я вижу! <br />
                Очередной смертный возомнил из себя героя! <br />
                Забавно-забавно! <small>(смеясь)</small><br />
                
                Я Нергал - Бог смерти и войны, владыка подземного царства! <br />
                Раз уж пожаловал, Назови свое имя! <br />
                <br />

                <form id="reg_form" action="" method="POST">
                    <label for="login">Логин <small>(имя)</small>:</label> <br />
                    <input id="login" type="text" name="login">
                    <br />
                    <select name="pol">
                        <option value="1">Мужчина</option>
                        <option value="2">Девушка</option>
                    </select>
                    <br />
                    <input type="hidden" name="reg" value="2">
                    <input type="submit"  name="submit" value="Продолжить">
                </form>
                <?
            
}
            else if(
$_POST['reg'] == 2)
            {
                
$err = array();

                
# проверяем, не сущестует ли пользователя с таким логином
                
$post_login trim(mysql_real_escape_string(htmlspecialchars($_POST['login'])));
                
$query mysql_query("SELECT COUNT(`id`) FROM `user` WHERE `nick`='".$post_login."'");
                if(
mysql_result($query0) > 0)
                {
                    echo
'Игрок с логином '.$post_login.' уже существует, укажите другой!';
                    echo
'
                        <form id="reg_form" action="" method="POST">
                        <input type="hidden" name="reg" value="">
                        <input type="submit" value="Назад">
                        </form>
                    '
;
                }
                else if(!
$_POST['pol'])
                {
                    echo
'Укажите Ваш пол пожалуйста!<br />';
                    echo
'
                        <form id="reg_form" action="" method="POST">
                        <input type="hidden" name="reg" value="">
                        <input type="submit" value="Назад">
                        </form>
                    '
;
                }
                else
                {
                    
/*Запишем данные в сессию*/
                    
$login trim(mysql_real_escape_string(htmlspecialchars($_POST['login'])));
                    
                    
$_SESSION['login'] = $login;
                    
$_SESSION['pol'] = $_POST['pol'];
                    
                    
/*Сгенерируем капчу для отображения и сохраним в сессию*/
                    
$code mt_rand(99999);    
                    
$_SESSION['code'] = $code;
                    
                    echo
'<strong>'.$login.'</strong>... <br />';
                    echo
'Ну что ж <strong>'.$login.'</strong>, если твое решение и в правду стать на путь войны, достичь вершин, которые подвластны только достойным... <br />';
                    echo
'Подтверди это подписью:';
                    
                    
?>
                    
                    <br />
                    
                    <img src="/capcha.php?text=<?echo $code;?>" alt="*"> <br />
                    
                    <form id="reg_form" action="" method="POST">
                        <label for="code"><small>Введите подпись:</small></label> <br />
                        <input id="code" type="text" name="code"> <br />
                        <input type="hidden" name="reg" value="3">

                        <input type="submit"  name="submit" value="Подтверждаю!">
                    </form>
                    <?
                
}
            }
            else if(
$_POST['reg'] == 3)
            {
                if(
$_SESSION['code'] != $_POST['code'])
                {
                    echo
'Идентификация провалена! Данные не совпадают! <br />';
                    echo
'
                        <form id="reg_form" action="" method="POST">
                        <input type="hidden" name="reg" value="2">
                        <input type="submit" value="Назад">
                        </form>
                    '
;
                    
                    
/*обнулим данные*/
                    
$_SESSION['code'] = NULL;
                }
                else
                {
                
                    
?>
                    Я, поправде, удевлен твоей смелостью! <br />
                    Но, смелости будет мало, без поддержки даже самый смелый не протянет и дня! <br />
                    Истенная сила - в единстве! <br />
                    Выбери гильдию за которую будешь сражатся! <br />
                    <br />
                    
                    <form  style="text-align: left;" method="POST">
                    
                        <label for="rassa1">
                            <input  id="rassa1" type="radio" name="rassa" value="1" checked>
                            <img width="50" src="/images/guild/1.png">
                            Дом торгариенов
                        </label>
                        <br />
                        
                        <label for="rassa2">
                            <input  id="rassa2" type="radio" name="rassa" value="2">
                            <img width="50" src="/images/guild/2.png">
                            Дом баратеонов
                        </label>
                        <br />
                        
                        <label for="rassa3">
                            <input  id="rassa3" type="radio" name="rassa" value="3">
                            <img width="50" src="/images/guild/3.png">
                            Дом старков
                        </label>
                        <br />
                        
                        <label for="rassa4">
                            <input  id="rassa4" type="radio" name="rassa" value="4">
                            <img width="50" src="/images/guild/4.png">
                            Дом ланестеров
                        </label>
                        <br />
                        
                        <input type="hidden" name="reg" value="4">

                        <input type="submit"  name="submit" value="Продолжить!">
                    </form>
                    <?
                
}
            }
            else if(
$_POST['reg'] == 4)
            {
                
/*Для особо умных закрываем доступ*/
                
if(!$_SESSION['rassa'])if(!$_POST['rassa'] || $_POST['rassa'] < || $_POST['rassa'] > 4) exit('Не верные данные');
                
                
/*Формируем название гильдии*/
                
if($_POST['rassa'])
                {
                    if(
$_POST['rassa'] == 1$rassa_name 'Дом торгариенов';
                    else
                    if(
$_POST['rassa'] == 2$rassa_name 'Дом баратеонов';
                    else
                    if(
$_POST['rassa'] == 3$rassa_name 'Дом старков';
                    else
                    if(
$_POST['rassa'] == 4$rassa_name 'Дом ланестеров';
                        
                    
/*Пишем в сессию рассу, трубуется для продолжения реги*/
                    
$_SESSION['rassa'] = (int)$_POST['rassa'];
                    
$_SESSION['rassa_name'] = $rassa_name;
                }
                
                echo
'
                Приветствую тебя <strong>'
.$_SESSION['login'].'</strong> <br />
                Я Герлд - глава гильдии "<b>'
.$_SESSION['rassa_name'].'</b>" <br />
                Рад приветствовать тебя в нашем доме! <br />
                У нас сейсас не легкие времена, много работы... <br />
                Оставь пожалуйста данные как мы можем с тобой связаться, и мы обязательно скоро пришлем тебе весточку со всей необходимой информацией! <br />
                <br />
                '
;
                
                
?>
                
                <form id="reg_form" action="" method="POST">
                    <label for="mail">Введите E-Mail: <br />
                        <input id="mail" type="text" name="mail"> <br />
                    </label>
                    <label for="pass1">Введите пароль <small>(min-6, max-12)</small>: <br />
                        <input id="pass1" type="password" name="pass1"> <br />
                    </label>
                    <label for="pass2">Введите пароль:  <small>(min-6, max-12)</small><br />
                        <input id="pass2" type="password" name="pass2"> <br />
                    </label>
                    <input type="hidden" name="reg" value="5">

                    <input type="submit"  name="submit" value="Передать данные!">
                </form>
                <?
            
}
            else if(
$_POST['reg'] == 5)
            {
                if((!
$_POST['mail']) || (!preg_match("/^([A-Za-z0-9_.-]+)@([a-z0-9_.-]+).([a-z.]{2,6})$/"$_POST['mail']))) $err[] = 'Введите данные E-Mail, или проверьте его корректность!<br />';
                if(
$_POST['pass1'] != $_POST['pass2']) $err[] = 'Пароли не совпадают';
                if(
strlen($_POST['pass1']) < || strlen($_POST['pass1']) > 12$err[] = 'Длина пароля должна быть не менее 3 и не более 12 символов!';
                if(!
eregi("^([A-Za-z0-9А])"$_POST['pass1'])) $err[] = 'Пароль должен состоять из латинских букв и/или цифр!';
                
                if(
count($err))
                {
                    echo
'<div style="text-align: left;">';
                        echo
'<font color="red">';
                            echo
'<b>При выполнения запроса возникли следующие ошибки:</b> <br />';
                            foreach(
$err AS $error)
                            {
                                echo 
'- '.$error.'<br />';
                            }
                        echo
'</font>';
                    echo
'</div>';
                    
                    echo
'
                        <form id="reg_form" action="" method="POST">
                        <input type="hidden" name="reg" value="4">
                        <input type="submit" value="Назад">
                        </form>
                        '
;
                        
                }
                else
                {
                    
$login trim(mysql_real_escape_string(htmlspecialchars($_SESSION['login'])));
                    
$rassa = (int)$_SESSION['rassa'];
                    
$rassa_name trim(mysql_real_escape_string(htmlspecialchars($_SESSION['rassa_name'])));
                    
$mail trim(mysql_real_escape_string(htmlspecialchars($_POST['mail'])));
                    
                        
$password htmlspecialchars($_POST['pass1']);
                        
$pass md5(md5(trim($password)));
                        
                        
/*Генерируем код для активации*/
                        
$mail_kod mt_rand(10,9999);
                        
$mail_kod ''.$_POST['mail'].''.$mail_kod.'';
                        
$mail_kod md5($mail_kod);
                    if(!
$login || !$pass || !$_SESSION['pol'] || !$mail)
                    {
                        echo
'Ошибка в целостности данных! <br /> Возможно Вы закрыли в процессе регистрации браузер. <br /> 
                        Попробуйте повторить процедуру регистрации, если увидите повторно этот текст, свяжитесь с Администрацией игры.'
;
                    }
                    else
                    {
                        
mysql_query("INSERT INTO `user` SET 
                                                            `nick`='"
.$login."', 
                                                            `pass`='"
.$pass."', 
                                                            `pol`='"
.(int)$_SESSION['pol']."', 
                                                            `rasa_name`='"
.$rassa_name."', 
                                                            `rasa`='"
.$rassa."', 
                                                            `timereg` = '"
.time()."',
                                                            `online` = '"
.time()."',
                                                            `save` = '1',
                                                            `health` = '50', 
                                                            `guild`='1',
                                                            `max_health` = '50', 
                                                            `sila` = '10', 
                                                            `lovk` = '10', 
                                                            `zashit` = '10',
                                                            `mail`='"
.$mail."',
                                                            `mail_real_link`='"
.$mail_kod."'");
                                                            
                                                            echo 
mysql_error();
                                                            
                        
/*Авторизируем юзера*/
                        
$set mysql_fetch_array(mysql_query("SELECT `id`,`pass` FROM `user` WHERE `nick`='".$login."' LIMIT 1"));
                        
# Генерируем случайное число и шифруем его
                        
$hash md5(generateCode(11));
                        
$insip ", `ip`='0'";
                        
mysql_query("UPDATE `user` SET `hash`='".$hash."' ".$insip." WHERE `id`='".$set['id']."'");
                        
# Ставим куки
                        
setcookie("id"$set['id'], time()+60*60*24*30);
                        
setcookie("hash"$hashtime()+60*60*24*30);    

                        
$theme $site_name
                        
$msg 'Здравствуй '.$login.'!
                        Как и обещал, написал тебе как только появилась свободная минутка.
                        Мы с нетерпением ждем твоего возвращения!
                        
                        Используй для входа :
                        Логин: '
.$login.'
                        Пароль: '
.$password.'
                        Выше данные являются конфидинциальными! Не сообщай их никому!
                        
                        Мне важно знать что это письмо доставили тебе!
                        Что бы подтвердить получение, ПОСЛЕ ТОГО КАК ПРОЙДЕШь АВТОРИЗАЦИЮ, обязательно перейди по адресу указаному ниже.
                        АДРЕС: http://'
.$site_adr.'/mail_real.php?cod='.$mail_kod.'
                        
                        Если Вы получили это письмо случайно, просто проигнорируйте его.
                        
                        С Ув. наставник гильдии '
.$rassa_name.' - Герлд.';
                            
                        
mail($mail"$theme"$msg,"From: info@".$site_adr." rn"."Content-Type: text/plain; charset="utf-8" rn"."X-Mailer: PHP/" phpversion());
        
                        echo
'Регистрации завершена! <br />Данные для авторизации отправлены на указанный E-Mail!<br />';
                        echo
'Для полноценного использования функционала игры, пожалуйста, подтвердите указанный при регистрации E-Mail, для этого просто перейдите по ссылке в сообщении. <br />';
                        echo
'Если сообщение не пришло - проверьте папку "Спам" <br />';
                        echo
'В случае возникновения проблем с регистрацией, свяжитесь с Администрацией игры, мы постараемся как можно скорее решить возникший вопрос.';
                        
                        echo
'<br /> <a href="/"><button>Войти в игру!</button></a> <br />';
                    }
                }
            }
        echo
'</div>';    
        
    break; 
// Закончил регистрацию


    // Обрабатываем запрос на авторизацию
     
case 'login':
        if(
$_POST['login'])
        {    
            
$post_login trim(htmlspecialchars(mysql_real_escape_string($_POST['login'])));
            
$set mysql_fetch_array(mysql_query("SELECT `id`,`pass` FROM `user` WHERE `nick`='".$post_login."' LIMIT 1"));

            if(
$set['pass'] === md5(md5($_POST['pass'])))
            {
                
# Генерируем случайное число и шифруем его
                
$hash md5(generateCode(11));    

                if(!@
$_POST['not_attach_ip'])
                {
                    
# Если пользователь выбрал привязку к IP
                    
$us_ip trim(mysql_real_escape_string(htmlspecialchars($_SERVER['REMOTE_ADDR'])));
                    
$insip ", `ip`='".$us_ip."'";
                } 
                else 
                { 
                    
# Или пишем равное нулю значение
                    
$insip ", `ip`='0'";
                }

                
# Записываем в БД новый хеш авторизации и IP
                
mysql_query("UPDATE `user` SET `hash`='".$hash."' ".$insip." WHERE `id`='".$set['id']."'");

                

                
# Ставим куки
                
setcookie("id"$set['id'], time()+60*60*24*30);
                
setcookie("hash"$hashtime()+60*60*24*30);    
                if(
$us_ipsetcookie("ip"$us_iptime()+60*60*24*30); /* если привязка к IP */    


                
echo '<h3>Доступ разрешен!</h3> <br />
                <form action="/" method="POST">
                    <input type="submit" value="Продолжить..">
                </form>'
;

            }
            else 
            {
                
                echo 
'<h3>Вы ввели неправильный логин/пароль</h3>
                <form action="/" method="POST">
                    <input type="hidden" name="reg" value="">
                    <input type="submit" value="Назад">
                </form>'
;

            }
    }
    else
    {
        
header('location: /'); 
    }

    break; 
// Авторизацию закончил

    

    // Проводим сверку данных авторизации
    
case 'check':
    
        if (isset(
$_COOKIE['id']) and isset($_COOKIE['hash']))
        {   
            
$query mysql_query("SELECT *,INET_NTOA(`ip`) FROM `user` WHERE `id` = '".intval($_COOKIE['id'])."' LIMIT 1");
            
$userdata mysql_fetch_assoc($query);

            if((
$userdata['hash'] !== $_COOKIE['hash']) or ($userdata['id'] !== $_COOKIE['id'])
                or ((
$userdata['ip'] !== $_SERVER['REMOTE_ADDR'])  and ($userdata['ip'] !== "0")))
            {
                
setcookie("id"""time() - 3600*24*30*12"/");
                
setcookie("hash"""time() - 3600*24*30*12"/");

                echo 
'Попробуйте повторить запрос. Если не удается решить данную проблему, пожалуйста, обратитесь к Администратору сайта!';
            } else {
                        
                    
                    echo 
'<b>Авторизация прошла успешно!</b> <br />';
                    echo 
' Добро пожаловать '.$userdata['login'].'!';
            }
        } else {
            
            
$text_h2 '<b>Ошибка авторизации!</b> <br />';
            
$text_h2 'В Вашем браузере отключена поддержка COOKIE';
        }


    break; 
// Закончил проверку дан. авт.
    
// Закрываем   switch


require_once 'core/foot.php';
?>
Онлайн: 0
Реклама