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

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

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

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

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>';
    
}

();

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