Вход Регистрация
Файл: pages/pass.php
Строк: 69
<?php
    
include '../engine/includes/start.php';
    
    
$set['title'] = 'Восстановление пароля';
    
    include 
H.'engine/includes/head.php';
    
    if (
$user_id)
        
Core::stop('/?');


    
/*
    FoXxs
    */

    
if (isset($_GET['set_new']))
    {
        if (
$sql->query("SELECT COUNT(*) FROM `user` WHERE `sess` = '".my_esc($_GET['set_new'], true)."'")->result() > 0)
        {
            if (isset(
$_POST['go2']))
            {
                if (empty(
$_POST['password_new']))
                {
                    
Core::msg_show('Введите новый пароль');
                }
                else
                {
                    
$user2 $sql->query("SELECT `ank_mail`, `nick`, `id` FROM `user` WHERE `sess` = '".my_esc($_GET['set_new'], true)."'")->fetch();
                    
$password md5($user2['id'] . $_POST['password_new']);
                    
                    
$sql->query("UPDATE `user` SET `pass` = '$password' WHERE `id` = ".$user2['id']."");
                    
                    
setcookie('user_id'$user2['id'], $time+60*60*24*365);
                    
setcookie('pass'$password$time+60*60*24*365);
                    
                    
$subject 'Устанановлен новый пароль';
                    
$regmail "Здравствуйте $user2[nick]<br />
                        Вы сменили пароль через e-mail<br />
                        Ваш новый пароль: <b>"
.$_POST['password_new']."</b><br />
                        С уважением, администрация сайта <b>"
.$_SERVER['SERVER_NAME']."</b><br />";
                        
$adds "From: "password@$_SERVER[HTTP_HOST]" <password@$_SERVER[HTTP_HOST]>n";
                        
$adds .= "Content-Type: text/html; charset=utf-8n";
                        
mail($user2['ank_mail'],'=?utf-8?B?'.base64_encode($subject).'?=',$regmail,$adds);
                    
                    
Core::msg_show('Пароль успешно сменен');
                    echo 
'<a href="/pages/user.php">Моя анкета</a>';
                }

            }
            else
            {
            
?>
                <form method="post" action="?set_new=<?=htmlspecialchars($_GET['set_new'])?>&amp;go2">
                
                Введите новый пароль:<br />
                <input type="password" name="password_new" /><br />
                
                <input type="submit" name="go2" value="Завершить"/>
                </form>
            <?
            
}
        }
        else
            
Core::msg_show('Ошибка восстановления пароля');
    }
    else
    {
        if (isset(
$_POST['go']))
        {
            if (empty(
$_POST['login']))
            {
                
Core::msg_show('Введите логин');
                
$error_pass true;
            }
            
            if (empty(
$_POST['email']))
            {
                
Core::msg_show('Введите E-mail');
                
$error_pass true;
            }
            
            if (!isset(
$error_pass))
            {
                if (
$sql->query("SELECT COUNT(*) FROM `user` WHERE `nick` = '".my_esc($_POST['login'],'true')."'")->result() > '0')
                {
                    
$user2 $sql->query("SELECT `id`,`nick`,`ank_mail` FROM `user` WHERE `nick` = '".my_esc($_POST['login'],'true')."'")->fetch();
                    
                    if (empty(
$user2['ank_mail']))
                        
Core::msg_show('Восстановление пароля не возможно<br />На данном логине нет E-mail');
                    elseif (
$_POST['email'] !== $user2['ank_mail'])
                        
Core::msg_show('E-mail введен не верно');
                    else
                    {
                        
$new_sess substr(md5(md5(md5(mt_rand()))), 020);
                        
$subject 'Восстановление пароля';
                        
$regmail "Здравствуйте $user2[nick]<br />
                        Вы активировали восстановление пароля<br />
                        Для установки нового пароля перейдите по ссылке:<br />
                        <a href="
http://$_SERVER[HTTP_HOST]/pages/pass.php?id=$user2[id]&set_new=$new_sess">http://$_SERVER[HTTP_HOST]/pages/pass.php?id=$user2[id]&amp;set_new=$new_sess</a><br />
                        
Данная ссылка действительна до первой авторизации под своим логином ($user2[nick])<br />
                        
С уважениемадминистрация сайта <b>".$_SERVER['SERVER_NAME']."</b><br />";
                        
$adds = "From"password@$_SERVER[HTTP_HOST]<password@$_SERVER[HTTP_HOST]>n";
                        
$adds .= "Content-Typetext/htmlcharset=utf-8n";
                        mail(
$user2['ank_mail'],'=?utf-8?B?'.base64_encode($subject).'?=',$regmail,$adds);

                        
$sql->query("UPDATE `userSET `sess` = '$new_sess' WHERE `id` = '".$user2['id']."' LIMIT 1");

                        Core::msg_show('Письмо с ссылкой для активации пароля отправлена на Ваш E-mail '.
$user2['ank_mail'].'');
                    }
                    
                }
                else
                  Core::msg_show('Пользователь с таким логином не найден');
            }
        }
        ?>
        <form action="" method="
POST">
        Логин:<br />
        <input type="
text" name="login" /><br />

        E-mail:<br />
        <input type="
text" name="email" /><br />
        <input type="
submit" name="go" value="Отправить" />
        </form>
        На ваш E-mail придет ссылка для установки нового пароля.<br />
        Если у вас в анкете отсутствует запись о вашем e-mail, восстановление пароля невозможно.<br />
        <?
    }
    include H.'engine/includes/foot.php';
Онлайн: 1
Реклама