Файл: imstat.ru/str/pass.php
Строк: 47
<?php
ob_start();
define('NTOP', 1);
$title = 'Восстановление пароля';
require_once ('../system/connect.php');
require_once ('../system/core.php');
require_once ('../system/function.php');
require_once ('head.php');
echo'<div class="topik">Выслать на email</div>';
switch ($act){
default:
unreg();
if(!isset($_POST['ok'])){
echo '<div class="stat"><form action="pass.php?" method="POST">Логин:<br/>
<input type="text" class="input" name="login" maxlength="30" value="" size="20" maxlength="50" /><br/>
<input name="ok" type="submit" value="Восстановить" /><br/></div>';
}else{
$error = '';
if(empty($_POST['login'])){
$error .= 'Не введен логин!<br/>';
}
if(mb_strlen($_POST['login']) > 30){
$error .= 'Поле "Логин" должно быть не меньше 5 и не больше 30 символов!<br/>';
}
if(!empty($error)){
echo '<div class="error">'.$error.'<br>
<a href="/str/pass.php">Назад</a></div>';
}else{
$login = filter($_POST['login']);
$user_isset = mysql_query("SELECT * FROM `".$prefix."users` WHERE `login` = '".$login."'");
if(mysql_num_rows($user_isset) > 0){
$row = mysql_fetch_array($user_isset);
$error = '';
if($row['antiflud'] > time()-86400){
$error .= 'Восстанавливать пароль можно 1 раз в 24 часа.<br/>';
}
if(empty($row['mail'])){
$error .= 'У данного пользователя не указан e-mail.<br/>';
}
if(!empty($error)){
echo '<div class="stat">'.$error.'<br>
<a href="/str/pass.php">Назад</a></div>';
}else{
$key = key_rand();
$update = mysql_query("UPDATE `".$prefix."users` SET `antiflud` = '".time()."', `key` = '".$key."' WHERE `id` = '".$row['id']."'");
$subject = "Восстановление пароля на ".$_SERVER['HTTP_HOST'];
$body = "Вы сделали запрос на восстановление пароля к аккаунту на ".$_SERVER['HTTP_HOST']."n";
$body .= "Для восстановления пароля , вам необходимо пройти по ссылке ниже , иначе операция не возможна.n";
$body .= "Ссалка: http://".$_SERVER['HTTP_HOST']."/str/pass.php?act=ok&user_id=".$row['id']."&key=".$key." n";
$headers = "From: ".$set['mail']." n";
$headers .= "Content-Type: text/plain; charset=utf-8n";
mail($row['mail'], $subject, $body, $headers);
echo '<div class="stat">На ваш e-mail отправлена инструкция по восстановлению пароля!</div>';
}}else{
echo '<div class="stat">Пользователь не найден в базе , или данные не верны!<br>
<a href="/str/enter.php">Назад</a></div>';
}}}
break;
case 'ok':
if(isset($_GET['user_id']) AND isset($_GET['key'])){
$id = abs(intval($_GET['user_id']));
$key = filter($_GET['key']);
$test = mysql_query("SELECT * FROM `".$prefix."users` WHERE `id` = '".$id."' AND `key` = '".$key."' AND `antiflud` > '".(time()-86400)."'");
if(mysql_num_rows($test) != 0){
$new_pass = password();
$update = mysql_query("UPDATE `".$prefix."users` SET `key` = '', `password` = '".md5($new_pass)."' WHERE `id` = '".$id."'");
echo '<div class="stat">Пароль успешно восстановлен!<br>Пароль: '.$new_pass.'</div>';
}else{
echo '<div class="stat">Пароль не восстановлен!</div>';
}}else{
echo '<div class="stat">Пароль не восстановлен!</div>';
}
break;
}
require_once ('foot.php');
?>