Вход Регистрация
Файл: Modules/recoveryPassword.php
Строк: 46
<?php
$title 
'Восстановление пароля';
require_once (
'Sys/head.php');
switch (
$act)
    {
        default:
        
unreg();
        if(!isset(
$_POST['ok']))
            {
                echo 
'<div class="d">';
                echo 
'<small>На E-Mail, указанный при регистрации, будет выслана ссылка для восстановления пароля.<br/></small>';
                echo
'
                <form action="" method="POST">
                Логин:<br/>
                <input type="text" class="form" class="input" name="login" maxlength="30" value="" size="20" maxlength="50" /><br/><br/>
                <input name="ok" type="submit" class="button" value="Восстановить" /><br/>
                '
;
                echo 
'</div>';
            }
        else
            {
                
$error '';
                if(empty(
$_POST['login']))
                    {
                        
$error .= 'Логин не введен.<br/>';
                    }
                if(
mb_strlen($_POST['login']) > 30 OR mb_strlen($_POST['login']) < 4)
                    {
                        
$error .= 'Поле "Логин" должно быть не меньше 4 и не больше 30 символов.<br/>';
                    }
                if(!empty(
$error))
                    {
                        echo 
'<div class="error">';
                        echo 
'В результате заполнения полей , выявились ошибки:<br/>';
                        echo 
$error;
                        echo 
'<a href="http://'.$_SERVER['HTTP_HOST'].'/m/recoveryPassword">Повторить</a><br/>';
                        echo 
'</div>';    
                    }
                else
                    {
                        
$login filter($_POST['login']);
                        
$userIsset $mysqli->query("SELECT `id`,`losttime`,`mail` FROM `".$prefix."users` WHERE `login` = '".$login."'");
                        
                        if(
$userIsset->num_rows 0)
                            {    
                                
$row $userIsset->fetch_assoc();
                                
$error '';
                                if(
$row['losttime'] > $time-86400)
                                    {
                                        
$error .= 'Восстанавливать пароль можно 1 раз в сутки.<br/>';
                                    }
                                if(
$row['mail'] == '')
                                    {
                                        
$error .= 'У данного пользователя не указан e-mail, обратитесь к администратору.<br/>';
                                    }
                                if(!empty(
$error))
                                    {
                                        echo 
'<div class="error">';
                                        echo 
'В результате заполнения полей , выявились ошибки:<br/>';
                                        echo 
$error;
                                        echo 
'<a href="http://'.$_SERVER['HTTP_HOST'].'/m/recoveryPassword">Повторить</a><br/>';
                                        echo 
'</div>';    
                                    }
                                else
                                    {
                                        
$key keyRand();
                                        
$update $mysqli->query("UPDATE `".$prefix."users` SET `losttime` = '".$time."', `lostkey` = '".$key."' WHERE `id` = '".$row['id']."'");
                                        
$subject "Восстановление пароля на сайте ".$_SERVER['HTTP_HOST'];
                                        
$body "Вы создали запрос на восстановление пароля к аккаунту на сайте ".$_SERVER['HTTP_HOST']."n";
                                        
$body .= "Для восстановления пароля , вам необходимо пройти по ссылке ниже:n";
                                        
$body .= "http://".$_SERVER['HTTP_HOST']."/m/recoveryPassword/".$row['id']."/".$key." n";
                                        
$headers "From: ".$set['mail']." n";
                                        
$headers .= "Content-Type: text/plain; charset=utf-8n";
                                        
mail($row['mail'], $subject$body$headers);
                                        echo 
'<div class="main">На e-mail, указанный в аккаунте, отправлена инструкция по восстановлению пароля.</div>';
                                    }
                            }
                        else
                            {
                                echo 
'<div class="error">';
                                echo 
'Пользователь не найден, или данные не верны.<br/>';
                                echo 
'<a href="http://'.$_SERVER['HTTP_HOST'].'/m/recoveryPassword">Повторить</a><br/>';
                                echo 
'</div>';
                            }
                    }
            }
        break;
        case 
'good':
        if(isset(
$_GET['uid']) AND isset($_GET['key']))
            {
                
$uid abs(intval($_GET['uid']));
                
$key filter($_GET['key']);
                
$usr $mysqli->query("SELECT `id`,`mail` FROM `".$prefix."users` WHERE `id` = '".$uid."' AND `lostkey` = '".$key."' AND `losttime` > '".($time-86400)."'");
                if(
$usr->num_rows 0)
                    {    
                        
$row $usr->fetch_assoc();
                        
$newPass password();
                        
$update $mysqli->query("UPDATE `".$prefix."users` SET `lostkey` = '', `password` = '".md5($newPass)."' WHERE `id` = '".$uid."'");
                        echo 
'<div class="d">';
                        echo 
'Пароль успешно восстановлен.<br/>';
                        echo 
'Новый пароль: '.$newPass.'<br/>';
                        echo 
'<small>Новый пароль также отправлен на E-MAIL указанный при регистрации.</small>';
                        echo 
'</div>';
                        
$subject "Новый пароль на сайте ".$_SERVER['HTTP_HOST'];
                        
$body "У вас установлен новый пароль от аккаунта на сайте ".$_SERVER['HTTP_HOST']."n";
                        
$body .= "Новый пароль: ".$newPass." n";
                        
$headers "From: ".$set['mail']." n";
                        
$headers .= "Content-Type: text/plain; charset=utf-8n";
                        
mail($row['mail'], $subject$body$headers);
                    }
                else
                    {
                                echo 
'<div class="error">';
                                echo 
'Пароль не восстановлен.<br/>';
                                echo 
'</div>';                
                    }
            }
        else
            {
                echo 
'<div class="error">';
                echo 
'Пароль не восстановлен.<br/>';
                echo 
'</div>';                
            }
        break;
    }
?>
Онлайн: 1
Реклама