Просмотр файла pages/lostpassword.php

Размер файла: 8.29Kb
<?php
// mod by Golem http://veplog.ru

require_once"../template/start.php";
require_once"../template/regglobals.php";
require_once"../template/config.php";
require_once"../template/functions.php";
require_once"../template/antidos.php";
require_once"../template/cookies.php";
require_once"../template/gzip.php";
require_once"../template/header.php";
require_once"../template/referer.php";
include_once"../themes/$config_themes/index.php";
include_once"../template/isset.php";   
    
echo '<div class="tp">Восстановление пароля</div>';

if ($provlog!=$_SESSION['log'] || $provpar!=md5($_SESSION['par'])) {

//---------------------- Форма для восстановления ------------------------------//
if(!isset($action)){

echo '<div class="body">Введите свой логин и код для проверки<br>';
echo 'Инструкция по восстановлению будет выслана на электронный адрес указанный в профиле<br>';
echo 'Восстанавливать пароль можно не чаще чем раз в 12 часов<br><br>';

if(!isset($_SESSION['mail_kod']) || $_SESSION['mail_kod']==""){
$_SESSION['mail_kod'] = mt_rand(1000,9999);
}

if($config_themes!="wml"){
echo '<form method="post" action="lostpassword.php?action=send&amp;'.SID.'">';
echo 'Логин:<br>';
echo '<input name="logus" type="text" maxlength="20" value="'.$_COOKIE['cookname'].'" /><br>';
echo 'Проверочный код: ';

if($config_protectimg==1){
echo '<img src="'.BASEDIR.'gallery/protect.php?pkod='.xoft_encode($_SESSION['mail_kod'],$config_keypass).'" alt=""><br>';
}else{
echo '<b>'.$_SESSION['mail_kod'].'</b><br>';
}
echo '<input name="provkod" maxlength="6" /><br><br>';
echo '<input value="Получить пароль" type="submit" /></form>';

}else{
	
echo '<br>Логин:<br><input name="logus" maxlength="20" value="'.$_COOKIE['cookname'].'"/><br>';
echo 'Проверочный код: ';

if($config_protectimg==1){
echo '<img src="'.BASEDIR.'gallery/protect.php?pkod='.xoft_encode($_SESSION['mail_kod'],$config_keypass).'" alt=""><br>';
}else{
echo '<b>'.$_SESSION['mail_kod'].'</b><br>';
}
echo '<input name="provkod" maxlength="6"/><br>';
echo '<anchor>Получить пароль';
echo '<go href="lostpassword.php?action=send&amp;'.SID.'" method="post">';
echo '<postfield name="logus" value="$(logus)"/>';
echo '<postfield name="provkod" value="$(provkod)"/>';
echo '</go></anchor><br>--------------------<br>';
}	
}

//---------------------- Отправка данных для восстановления ------------------------------//
if($action=="send"){
if($_POST['logus']!=""){
if ($_SESSION['mail_kod']==$_POST['provkod']){

$logus = check($_POST['logus']);
$_SESSION['mail_kod'] = "";

if(file_exists(BASEDIR."local/profil/$logus.prof")){

$restore_key = xoft_encode(($sitetime + 43200),$config_keypass);

//------------------------------ Запись в профиль ----------------------------//
$ufile = file_get_contents(BASEDIR."local/profil/$logus.prof"); 
$udata = explode(":||:",$ufile);

if($udata[35]=="" || xoft_decode($udata[35],$config_keypass)<$sitetime){

$udata[35] = $restore_key;

for ($u=0; $u<$config_userprofkey; $u++){
$utext.=$udata[$u].':||:';}

if($udata[0]!="" && $udata[1]!="" && $udata[4]!="" && $utext!=""){
$fp=fopen(BASEDIR."local/profil/$logus.prof","a+");    
flock($fp,LOCK_EX);           
ftruncate($fp,0);                                                                
fputs($fp,$utext);
fflush($fp);
flock($fp,LOCK_UN);
fclose($fp);
unset($utext);
} 

//---------------- Инструкция по восстановлению пароля на E-mail --------------------------//
if($udata[4]!=""){
addmail($udata[4], "Подтверждение восстановления пароля на сайте ".$config_title, "Здравствуйте, ".$udata[0]." \nВами была произведена операция по восстановлению пароля на сайте ".$config_home." \nДля того чтобы восстановить пароль, вам необходимо перейти по ссылке: \n\n".$config_home."/mail/lostpassword.php?action=restore&user=".$udata[0]."&key=".$restore_key." \n\nЕсли это письмо попало к вам по ошибке или вы не собираетесь восстанавливать пароль, то просто проигнорируйте его");
}

echo 'Письмо с инструкцией по востановлению пароля успешно выслано на E-mail указанный в профиле<br>';
echo 'Внимательно прочтите письмо и выполните все необходимые действия для восстановления пароля<br>';
echo 'Восстанавливать пароль можно не чаще чем раз в 12 часов<br>';


} else { echo '<b>Ошибка, с момента последнего восстановления пароля прошло менее 12 часов!</b><br>';}
} else { echo '<b>Ошибка, пользователя с данным логином не зарегестрирован!</b><br>';}
} else { echo '<b>Проверочное число не совпало с данными на картинке!</b><br>';}
} else { echo '<b>Ошибка, вы не ввели логин для восстановления!</b><br>';}

echo'- <a href="lostpassword.php?'.SID.'">Вернуться</a>';
}


//---------------------- Восстановления пароля ------------------------------//
if($action=="restore"){
if($_GET['user']!=""){
if($_GET['key']!=""){

$user=check(trim($_GET['user']));
$key=check(trim($_GET['key']));

if(file_exists(BASEDIR."local/profil/$user.prof")){

$newpass=generate_password();
$mdnewpas=md5($newpass);

//------------------------------ Запись в профиль ----------------------------//
$ufile = file_get_contents(BASEDIR."local/profil/$user.prof"); 
$udata = explode(":||:",$ufile);

if($udata[35]!="" && $udata[35]==$key){

$udata[1] = $mdnewpas;
$udata[35] = "";

for ($u=0; $u<$config_userprofkey; $u++){
$utext.=$udata[$u].':||:';}

if($udata[0]!="" && $udata[1]!="" && $udata[4]!="" && $utext!=""){
$fp=fopen(BASEDIR."local/profil/$user.prof","a+");    
flock($fp,LOCK_EX);           
ftruncate($fp,0);                                                                
fputs($fp,$utext);
fflush($fp);
flock($fp,LOCK_UN);
fclose($fp);
unset($utext);
}  


//---------------- Восстановлению пароля на E-mail --------------------------//
if($udata[4]!=""){
addmail($udata[4], "Восстановление пароля на сайте ".$config_title, "Здравствуйте, ".$udata[0]." \nВаши новые данные для входа на на сайт ".$config_home." \nЛогин: ".$udata[0]." \nПароль: ".$newpass." \n\nЗапомните и постарайтесь больше не забывать данные, а лучше сделайте сразу закладку на наш сайт \n".$config_home."/input.php?login=".$udata[0]."&pass=".$newpass."&cookietrue=1 \nПароль вы сможете поменять в своем профиле \nВсего наилучшего");
}


header ("Location: ../index.php?isset=lostpass&".SID); exit;

} else { echo '<b>Ошибка, секретный код в ссылке не совпадает с данными в профиле!</b><br>';}
} else { echo '<b>Ошибка, пользователя с данным логином не зарегестрирован!</b><br>';}
} else { echo '<b>Ошибка, отсутствует секретный код в ссылке для восстановления пароля!</b><br>';}
} else { echo '<b>Ошибка, отсутствует логин в ссылке для восстановления пароля!</b><br>';}

}

} else { echo '<b>Ошибка! Вы авторизованы, восстановление невозможно</b><br>'; }

echo '</div><div class="btm">[<a href="../index.php?'.SID.'">На главную</a>]</div>';
include_once "../themes/$config_themes/foot.php";
?>