Вход Регистрация
Файл: lost_pass.php
Строк: 73
<?
require 'config.php';
$align='left';
$title='Восстановление пароля';
include 
'style/head.php';
if (empty(
$act))
    {
     echo 
'<form action="?act=act&amp;'.SID.'" method="post">';
     echo 
'Ваш ник или id:<br /><input name="nick" title="Ваш ник или id"/><br/>';
     echo 
'Email:<br /><input name="email" title="email"/><br/>';
     
$chislo=rand(1000,9999);
     
$db->sql_query("DELETE FROM `chislo` WHERE `ip` = '".$ip."'");
     
$db->sql_query("INSERT INTO `chislo` (chislo,ip) values('$chislo','".$ip."')");
     echo 
'&#160;<b>'.$chislo.'</b><br/>Проверочный код:<br/>
     <input type="text" name="code" size="4" maxlength="4" title="code"/><br/><br />'
;
     echo 
'<input type="submit" class="button" value="Выслать пароль"/></form><br />';
    }
else if (
$act=='act')
    {
     
$nick check($_POST['nick']);
     
$email check($_POST['email']);
     if (!
user($nick))$err 'Такого пользователя не существует!';
     
$email0=user_inf($nick,'email');
     if (
$email0=='')$err 'У вас не указан email!';
     else if (
$email0!=$email)$err 'email введен неверно!';
     
$online $db->sql_fetchrow($db->sql_query("SELECT * FROM `chislo` WHERE `ip` = '".$ip."'"));
     if(
$online['chislo'] != intval($_POST['code']))$err 'Проверочный код введен неверно!';
     if (
user_inf($nick,'rest_time') > $time 86400)$err 'Пароль можно восстанавливать не чаще 1 раза в сутки';
     if (empty(
$err))
        {
         
$msgemail "Здравствуйте ".user_inf($nick,'user')."n Вы запросили восстановление пароля в чате http://".$_SERVER['HTTP_HOST']."nЛогин: ".user_inf($nick,'user')."nНовый пароль: ".$newpass."nnС уважением, Администрация ".$_SERVER['HTTP_HOST']."n";
         
$msgemail "Здравствуйте, " user_inf($nick,'user') . "rnВы начали процедуру восстановлению пароля в чате http://".$_SERVER['HTTP_HOST']."rnДля того чтобы восстановить пароль, вам необходимо перейти по ссылке: nn http://".$_SERVER['HTTP_HOST']."/lost_pass.php?act=set&id=" user_inf($nick) . "&code="session_id() . "nnСсылка действительна в течение 1 часаrnЕсли это письмо попало к вам по ошибке или вы не собираетесь восстанавливать пароль, то просто проигнорируйте его.";
         
addmail($email0'Восстановление пароля'$msgemail);
         
$db->sql_query("UPDATE `users` SET `rest_code` = '" session_id() . "', `rest_time` = '$time' WHERE `id` = '" user_inf($nick) . "'");
         echo 
'Инструкции по восстановлению пароля высланы на E-mail: '.$email0.'';
        }
     else echo 
$err;
    }
else if (
$act=='set')
    {
     
$code = isset($_GET['code']) ? trim($_GET['code']) : '';
     
$nick = isset($_GET['id']) ? trim(intval($_GET['id'])) : '';
     if (!
user($nick))$err 'Такого пользователя не существует!';
     
$email0=user_inf($nick,'email');
     if (
$code != user_inf($nick,'rest_code')) $err 'Восстановление пароля невозможно';
     if (
user_inf($nick,'rest_time') < $time 3600)
        {
         
$err 'Время, отведенное на восстановления пароля прошло';
         
$db->sql_query("UPDATE `users` SET `rest_code` = '', `rest_time` = '' WHERE `id` = '$id'");
        }
     if (empty(
$err))
        {
         
$newpass passgen(6);
         
$mail "Здравствуйте, " user_inf($nick,'user') . "rnВы изменили пароль в чате http://".$_SERVER['HTTP_HOST']."rn";
         
$mail .= "Ваш новый пароль: $newpass rn";
         
$mail .= "После входа на сайт, Вы сможете сменить пароль на другой, какой пожелаете.";
         if (
addmail($email0"Ваш новый пароль"$mail))
            {
             
$db->sql_query("UPDATE `users` SET `rest_code` = '', `pass` = '" md5($newpass) . "' WHERE `id` = '$id'");
             echo 
'Пароль успешно изменен.<br />Новый пароль выслан на ваш адрес E-mail<br />';
            }
         else
            {
             echo 
'Ошибка отправки E-mail<br />';
            }
        }
     else echo 
$err;
    }
include 
'style/foot.php';
?>
Онлайн: 1
Реклама