Вход Регистрация
Файл: remind.php
Строк: 45
<?php

include 'system/sys.php';
include 
'system/funcs.php';

if (isset (
$us)) {
        
header ('location: /');    
        exit;
}

H ('Восстановление пароля', 'Восстановление пароля');

if (isset (
$_GET['key'])) {

        if (!isset (
$_GET['key'])) {
                
header ('location: /remind.php');
                exit;
        }
        
        
$query = DB :: $dbs -> query ("SELECT * FROM `pass` WHERE (`key`=?)", array (htmlspecialchars (addslashes (trim ($_GET['key'])))));
        if (
$query -> rowCount () == 0) {
                
header ('location: /remind.php');
                exit;
        }
        
$pass = $query -> fetch ();
        
        if ((
time () - $pass['t']) > 86400) {
                echo 
'<div class="list1"><b>Ключ не действителен!</b></div>';
        }
        else {
        
                echo 
'<div class="list1">';
                echo 
'<form method="post" action="/remind.php?key=' . $pass['key'] . '&save">';
                echo 
'Новый пароль:<br/><input name="pass"/><br/>';
                echo 
'Повторите новый пароль:<br/><input name="pass2"/><br/>';
                echo 
'<input type="submit" value="Сохранить" />';
                echo 
'</form>';
                echo 
'</div>';
                
                if (isset (
$_GET['save'])) {
                        
$_POST['pass']  = htmlspecialchars (addslashes (trim ($_POST['pass'])));
                        
$_POST['pass2'] = htmlspecialchars (addslashes (trim ($_POST['pass2'])));
                            if (empty (
$_POST['pass'])) {
                                echo 
'<div class="list1"><b>Вы не ввели новый пароль..</b></div>';
                        }
                        elseif (empty (
$_POST['pass2'])) {
                                echo 
'<div class="list1"><b>Вы не ввели повторный пароль..</b></div>';
                        }
                        elseif (
$_POST['pass'] != $_POST['pass2']) {
                                echo 
'<div class="list1"><b>Пароли не совпадают!</b></div>';
                        }
                        else {
                                
                                
DB :: $dbs -> query ("UPDATE `us` SET `pass`=? WHERE (`id`='" . $pass['us'] . "')", array (md5 ($_POST['pass'])));
                                
DB :: $dbs -> query ("DELETE FROM `pass` WHERE (`us`='" . $pass['us'] . "')");
                                
                                
setcookie ('pass', md5 ($_POST['pass']), time () + 86400 * 365, '/');                        
                                
setcookie ('id',   $pass['us'],        time () + 86400 * 365, '/');

                                
                                echo 
'<div class="list1"><b>Новый пароль успешно установлен!</b></div>';
                                
                                
header ('refresh: 1; url=/');
                        
                        }
                }
        
        }

}
else {

        if (isset (
$_GET['ok'])) {
                if (!isset (
$_POST['id'])) {
                        
header ('location: /remind.php');
                        exit;
                }
                
$query = DB :: $dbs -> query ("SELECT * FROM `us` WHERE (`id`=?)", array (intval ($_POST['id'])));
                if (
$query -> rowCount () == 0) {
                        
header ('location: /remind.php');
                        exit;
                }
                
$u = $query -> fetch ();
                
                
$key = passgen ();
                
                
$query = DB :: $dbs -> query ("SELECT * FROM `pass` WHERE (`us`='" . $u['id'] . "')");
                if (
$query -> rowCount () == 0) {            
                        
DB :: $dbs -> query ("INSERT INTO `pass` (`us`,`key`,`t`) VALUES ('" . $u['id'] . "', '" . $key . "', '" . time () . "')");                
                }
                else {
                        
$pass = $query -> fetch ();
                        if ((
time () - $pass['t']) < 3600) {
                                
header ('location: /remind.php');
                                exit;
                        }
                        
DB :: $dbs -> query ("UPDATE `pass` SET `key`='" . $key . "',`t`='" . time () . "' WHERE (`id`='" . $u['id'] . "')");
                }
                
                
$subject = 'Восстановление пароля';
                
                
$text   .= 'Здравствуйте ' . $u['nick'] . '<br/>';
                
$text   .= 'Для установки нового пароля перейдите по ссылке: <a href="http://php-zona.ru/remind.php?key=' . $key . '">http://php-zona.ru/remind.php?key=' . $key . '</a><br/>';
                
$text   .= 'Ключ действителен в течение 24 часов после отправки на email!<br/>';
                
$text   .= 'С уважением, администрация проекта!<br />';
                
                
$adds    = "From: "support@php-zona.ru" <support@php-zona.ru>n";
                
$adds   .= "content-type: text/html; charset=utf-8n";
                
mail ($u['email'], '=?utf-8?B?' . base64_encode ($subject) . '?=', $text, $adds);
                
                echo 
'<div class="list1"><b>Инструкции по установке нового пароля отправлены на указанный при регистрации email!</b></div>';
                
                
header ('refresh: 5; url=/remind.php');
                
        }
                
        echo 
'<div class="list1">';
        echo 
'<form method="post" action="/remind.php?ok">';
        echo 
'Ваш Id:<br/><input name="id"/><br/>';
        echo 
'<input type="submit" value="Восстановить" />';
        echo 
'</form>';
        echo 
'</div>';
        
        echo 
'<div class="list1">* Повторная отправка будет возможна только через 1 час!</div>';
    
}

F ();

?>
Онлайн: 3
Реклама