View file shcms/flogged.php

File size: 4.84Kb
<?
/*
=============================================
Движок: SHCMS Engine
=============================================
Название файла: Восстановление пороля
=============================================
Official website: http://shcms.ru
=============================================
*/
define('SHCMS', true);
include_once'../system/inc/system_core.php';
$shcmsengine['title'] = Lang::get('Восстановление пороля');
include_once'../template/head.php';

  if(isset($user_id)){
  header("Refresh:1; url=/index.php");
  exit();
  }
if($settings_shcms['passcode'] == 2) {
engine::errors(Lang::get('Восстановления пароля временно недоступно'));
include_once'../template/foot.php';
exit;
}
  
if(isset($_POST['email']))
{$email = $_POST['email'];}
if(isset($_GET['id']))
{$id = $_GET['id'];}

switch($act):
    default:
        echo '<form action="flogged.php?act=passlist" method="post">';
        echo Lang::get('Ваш E-Mail:').'<br/><input type="text" name="email" /></p>';
        echo '<p><input type="submit" value="'.Lang::get('Восстановить').'"/></p></form>';
       echo '<small>'.Lang::get('* Пороль могут восстановить пользователи которые заполнили email в личных данных').'</small>';
 
	  break;
	  
	  
	case 'passlist':
	if(empty($email))
	{
     engine::errors(Lang::get("Вы не ввели E-mail"));
	header("Refresh: 1; url=flogged.php");
	include_once'../template/foot.php';
	exit;
	}
	$email_pass = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `email` = '$email'"));
	
	if($email_pass['email'] == false)
	{
	engine::errors(Lang::get("Введенный вами E-mail не зарегистрирован на сайте"));
	header("Refresh: 1; url=flogged.php");
	include_once'../template/foot.php';
	exit;
	}
	$subject = Lang::get('Восстановление пароля');
            $mail .= Lang::get("Чтобы восстановить ваш пороль перейдите по ссылке:")." 
			http://$_SERVER[HTTP_HOST]/shcms/flogged.php?act=change&id=" . $email_pass['id'] . "&code=" . session_id() . "\n\n";
			$adds ="From: SHCMS Engine <shcms@".$_SERVER['HTTP_HOST'].">\r\n" . 
              $adds .= "Content-Type: text/plain; charset=\"utf-8\"\r\n";
            if (mail($email_pass['email'], $subject, $mail, $adds)) 
			{
			    mysql_query("UPDATE `users` SET `flogged_n` = '" . session_id() . "', `flogged_t` = '$time_date' WHERE `id` = '" . $email_pass['id'] . "'");
                echo Lang::get('<p>Все данные были отправлены на ваш E-mail <b>(%s)</b> зайдите на вашу почту и закончите процесс.</p>',$email);
			} 
			else {
			    echo Lang::get('<p>Произошли сбои при отправки E-mail</p>');
			}
	break;
	
	
	
	case 'change':
	$pass_new = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `id` = '$id' LIMIT 1"));
	            if ($pass_new['flogged_t'] < (time()-3600)) 
			{
			    engine::errors(Lang::get('Время восстановления пороля исчерпано'));
                mysql_query("UPDATE `users` SET `flogged_n` = '', `flogged_t` = '' WHERE `id` = '$id'");
				header("Refresh: 1; url=/index.php");
                include_once'../template/foot.php';
                exit;
			}
	
	if(isset($_POST['submit'])) {
	$submit = $_POST['submit'];
	}
		if(isset($submit))
		{
		
		if (empty($pass_new['flogged_n']) || empty($pass_new['flogged_t'])) 
		{
	engine::errors(Lang::get("Вы неправильно восстановили пороль"));
	header("Refresh: 1; url=/index.php");
	include_once'../template/foot.php';
	exit;
		}
	
	if(isset($_POST['pass1'])) {
		$pass1 = $_POST['pass1'];
	}
    if(isset($_POST['pass2'])) {
		$pass2 = $_POST['pass2'];
	}
	
	if(empty($pass1) and empty($pass2))
	{
		engine::errors(Lang::get("Вы не ввели новый пороль"));
		include_once'../template/foot.php';
		exit;
	}
	if($pass1 == $pass2)
	{
		mysql_query("UPDATE `users` SET `flogged_n` = '', `password` = '" . md5(md5($pass1)) . "' WHERE `id` = '$id'");
		echo Lang::get('Ваш пороль был успешно сменен на <b>%s</b><br/><hr/>Для безопастности новый пороль вам был выслан на ваш E-mail',$pass1);
		include_once'../template/foot.php';
		exit;
	}
		}
	
	echo '<form action="?act=change&id='.$id.'&code='.session_id().'" method="post">';
	echo Lang::get('Новый пороль:').'<br/> <input type="text" name="pass1"><br/>';
	echo Lang::get('Повторить новый пороль:').'<br/> <input type="text" name="pass2"><br/>';	
	echo '<input type="submit" name="submit" value="'.Lang::get('Сменить пороль').'">';
	
	
	
	break;
endswitch;







include_once'../template/foot.php';
?>