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