View file xmyx.ru/restore.php

File size: 6.81Kb
<? 

include_once 'sys/inc/start.php'; 
include_once 'sys/inc/compress.php'; 
include_once 'sys/inc/sess.php'; 
include_once 'sys/inc/home.php'; 
include_once 'sys/inc/settings.php'; 
include_once 'sys/inc/db_connect.php'; 
include_once 'sys/inc/ipua.php'; 
include_once 'sys/inc/fnc.php'; 
include_once 'sys/inc/shif.php'; 

$show_all=true; // показ для всех 

include_once 'sys/inc/user.php'; 

only_unreg(); 

$set['title'] = 'Восстановление доступа к странице | Xmyx.Ru'; 
include_once 'sys/inc/thead.php'; 

shapka_VK(false, '', 'Восстановление доступа к странице'); 

 

 

 

 

 

 

if (isset($_POST['nick']) && isset($_POST['mail']) && $_POST['nick']!=NULL && $_POST['mail']!=NULL) 

{ 

if (mysql_result(mysql_query("SELECT COUNT(*) FROM `user` WHERE `nick` = '".my_esc($_POST['nick'])."'"), 0)==0) 

{ 

$err = "<b>Пользователь не найден.</b><br>Пожалуйста, убедитесь, что Вы правильно ввели email или никнейм."; 

} 

elseif (mysql_result(mysql_query("SELECT COUNT(*) FROM `user` WHERE `nick` = '".my_esc($_POST['nick'])."' AND `ank_mail` = '".my_esc($_POST['mail'])."'"), 0)==0) 

{ 

$err = '<b>Пользователь не найден.</b><br>Пожалуйста, убедитесь, что Вы правильно ввели email или никнейм.'; 

} 

else  

{ 

$q = mysql_query("SELECT * FROM `user` WHERE `nick` = '".my_esc($_POST['nick'])."' LIMIT 1"); 

$user2 = mysql_fetch_assoc($q); 

$new_sess=substr(md5(passgen()), 0, 20); 

$subject = "Восстановление пароля"; 

$regmail = "Здравствуйте $user2[nick]<br /> <br />

Вы активировали Восстановление доступа к странице на сайте Xmyx.Ru.<br /> <br />

Для установки нового пароля перейдите по ссылке:<br /> 

<a href='http://$_SERVER[HTTP_HOST]/restore?id=$user2[id]&amp;rh=$new_sess'>http://$_SERVER[HTTP_HOST]/restore?id=$user2[id]&amp;rh=$new_sess</a><br /> 

Данная ссылка действительна до первой авторизации под своим Никнеймом <b>\"$user2[nick]\"</b><br /> 

<br /> -----<br />
Если данное письмо попало к Вам по ошибке, пожалуйста, проигнорируйте его и примите наши извинения.
<br /> -----<br /><br />
С наилучшими пожеланиями,
Администрация сайта Xmyx.Ru<br /> 

"; 

$adds="From: \"password@$_SERVER[HTTP_HOST]\" <password@$_SERVER[HTTP_HOST]>\n"; 

//$adds = "From: <$set[reg_mail]>\n"; 

//$adds .= "X-sender: <$set[reg_mail]>\n"; 

$adds .= "Content-Type: text/html; charset=utf-8\n"; 

mail($user2['ank_mail'],'=?utf-8?B?'.base64_encode($subject).'?=',$regmail,$adds); 

mysql_query("UPDATE `user` SET `sess` = '$new_sess' WHERE `id` = '$user2[id]' LIMIT 1"); 

$_SESSION['message'] = "Ссылка для установки нового пароля отправлена на e-mail ".$user2['ank_mail']."";

} 
} 

 

 

if (isset($_GET['id']) && isset($_GET['rh']) && strlen($_GET['rh'])==20 &&  
mysql_result(mysql_query("SELECT COUNT(*) FROM `user` WHERE `id` = '".intval($_GET['id'])."' AND `sess` = '".my_esc($_GET['rh'])."'"), 0)==1) 

{ 

$q = mysql_query("SELECT * FROM `user` WHERE `id` = '".intval($_GET['id'])."' LIMIT 1"); 

$user2 = mysql_fetch_assoc($q); 

 

if (isset($_POST['pass1']) && isset($_POST['pass2'])) { 
if ($_POST['pass1']==$_POST['pass2']) { 
	if (strlen2($_POST['pass1'])<8)$err='Пароль слишком короткий, минимальная длина - 8 символов.'; 
	if (strlen2($_POST['pass1'])>32)$err='Пароль слишком длинный, максимальная длина - 32 символов.'; 
} 
else $err='Введенные пароли не совпадают.'; 

if (!isset($err)){ 
	setcookie('id_user', $user2['id'], time()+60*60*24*365); 
	mysql_query("UPDATE `user` SET `pass` = '".shif($_POST['pass1'])."' WHERE `id` = '$user2[id]' LIMIT 1"); 
	setcookie('pass', cookie_encrypt($_POST['pass1'],$user2['id']), time()+60*60*24*365); 

	$_SESSION['message'] = "Пароль успешно изменен новый"; 
	header("Location: /");  
	exit;  
} 

} 

 

 ?>
<div class="pcont fit_box bl_cont" style="border: 1px solid #dcddde;border-top: 0;">
<h4 class="sub_header">Восстановление доступа к странице</h4>
<div class="form_item fi_fat">
<?

err(); 
uvedom();

?>
<div class="fi_row">
   Пожалуйста, укажите <b>новый пароль</b>, который будете использовать дя входа на сайт!
</div>

<form action="/restore?id=<?= $user2['id']?>&amp;rh=<?= esc($_GET['rh'],1)?>&amp;hash=<?= $passgen?>" method="post" data-noajax="">

<dl class="fi_row">
<dt class="fi_label">Ваш Никнейм:</dt>
<dd>
<div class="iwrap">
<input class="textfield" disabled="disabled" value="<?= $user2['nick']?>" autocapitalize="off" type="text">
</div>
</dd>
</dl>

<dl class="fi_row">
<dt class="fi_label">Новый пароль:</dt>
<dd>
<div class="iwrap">
<input class="textfield" name="pass1" value="" autocapitalize="off" type="password">
</div>
</dd>
</dl>

<dl class="fi_row">
<dt class="fi_label">Подтверждение:</dt>
<dd>
<div class="iwrap">
<input class="textfield" name="pass2" value="" autocapitalize="off" type="password">
</div>
</dd>
</dl>

<div class="fi_row"><input class="button" value="Изменить" type="submit"></div>
</form>
</div>
</div>
<?

} 

else 

{ 

?>
<div class="pcont fit_box bl_cont" style="border: 1px solid #dcddde;border-top: 0;">
<h4 class="sub_header">Восстановление доступа к странице</h4>
<div class="form_item fi_fat">
<?

err(); 
uvedom();
?>
<div class="fi_row">
   Пожалуйста, укажите <b>никнейм</b>, который Вы использовали для входа на сайт, так же <b>email</b> который указывали в настройках!
</div>

<form action="?hash=<?= $passgen?>" method="post" data-noajax="">

<dl class="fi_row">
<dt class="fi_label">Введите Никнейм:</dt>
<dd>
<div class="iwrap">
<input class="textfield" name="nick" value="" autocapitalize="off" type="text">
</div>
</dd>
</dl>
<dl class="fi_row">
<dt class="fi_label">Введите email:</dt>
<dd>
<div class="iwrap">
<input class="textfield" name="mail" value="" autocapitalize="off" type="text">
</div>
</dd>
</dl>
<div class="fi_row"><input class="button" value="Далее" type="submit"></div>
</form>

<div class="login_help">Если Вы <b>не вводили</b> email в настройках, восстановление пароля невозможно.</a></b></div>

</div> 
</div>
<?

} 

include_once 'sys/inc/tfoot.php'; 

?>