Файл: moduls/pass.php
Строк: 56
<?php
include_once'../system/xcms_core.php';$title='Восстановление пароля';
if($_COOKIE['style']=='web')require_once '../system/web_head.php'; else require_once '../system/head.php';
switch($act){
    case 'change':
    if(!empty($_GET['user']) and !empty($_GET['code'])){
        $guser=abs(protect($_GET['user'])); $gcode=protect($_GET['code']);
        $q=$db->query("select * from `change_pass` where `user`='$guser' and `code`='$gcode'")->fetch(PDO::FETCH_ASSOC);
        if($q){
            $w=$db->query("select `mail`,`login` from `user` where `id`='$guser'")->fetch(PDO::FETCH_ASSOC);
            if($w){
                $newpass=$passgen;
                $db->prepare("update `user` set `password`='".pass($newpass)."' where `id`='$guser'")->execute();
                $db->exec("delete from `change_pass` where `id`='$q[id]'");
                $subject='Ваш новый пароль';
                $message='Вы запросили восстановление пароля на сайте '.$_SERVER['HTTP_HOST'].'
Ваш логин: '.$w['login'].'
Ваш новый пароль: '.$newpass.'
Ссылка на автологин:
http://'.$_SERVER['HTTP_HOST'].'/enter?login='.$w['login'].'&password='.$newpass;
                $headers = 'From: robot@'.$_SERVER['HTTP_HOST'].'' . "rn" .
                'Reply-To: robot@'.$_SERVER['HTTP_HOST'].'' . "rn" .
                'X-Mailer: PHP/' . phpversion();
                mail($w['mail'],$subject,$message,$headers);
                echo'<div class="menu">Ваш новый пароль был отправлен на вашу эл. почту</div>';
            }else{echo'<div class="menu">Ошибка</div>';}
        }else{echo'<div class="menu">Ошибка</div>';}
    }else{echo'<div class="menu">Ошибка</div>';}
    break;
    
    default:
    if(!empty($_POST['login'])){
        $login = protect($_POST['login']);
        $query = $db->query("SELECT * FROM `user` WHERE `login` = '$login'")->fetch(PDO::FETCH_ASSOC);
        if($query){
            if($query['mail']){
                echo'<div class="menu">Перейдите по ссылке, которая была отправлена на вашу эл. почту</div>';
                $code=$passgen;
                $subject='Восстановление пароля';
                $message='Вы запросили восстановление пароля на сайте '.$_SERVER['HTTP_HOST'].'
Скопируйте и вставьте в окно браузера след. ссылку:
http://'.$_SERVER['HTTP_HOST'].'/pass?act=change&user='.$query['id'].'&code='.$code.'
Если вы не имеете отношения к письму, то просто удалите его';
                $headers = 'From: robot@'.$_SERVER['HTTP_HOST'].'' . "rn" .
                'Reply-To: robot@'.$_SERVER['HTTP_HOST'].'' . "rn" .
                'X-Mailer: PHP/' . phpversion();
                mail($query['mail'],$subject,$message,$headers);
                $db->query("insert into `change_pass` set `user`='$query[id]', `code`='$code'");
                
            }else{echo'<div class="menu"><span style="color:#E12C11">У пользователя не заполнен email</span></div>';}
        }else{echo '<div class="menu"><span style="color:#E12C11">Логин не найден</span></div>';}
    }else{
        echo '<div class="menu"><form method="post" action="#" >
        Ваш логин:<input type="text" name="login" size="10"/>
        <input type="submit" name="but" value="Вспомнить"/></form></div>';
    }
}
back('/');
if($_COOKIE['style']=='web')require_once '../system/web_foot.php'; else require_once '../system/foot.php';
?>