View file moduls/pass.php

File size: 3.36Kb
<?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'].'' . "\r\n" .
				'Reply-To: robot@'.$_SERVER['HTTP_HOST'].'' . "\r\n" .
				'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'].'' . "\r\n" .
				'Reply-To: robot@'.$_SERVER['HTTP_HOST'].'' . "\r\n" .
				'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';
?>