<?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://wap-mas.ru/remind.php?key=' . $key . '">http://wap-mas.ru/remind.php?key=' . $key . '</a><br/>';
                $text   .= 'Ключ действителен в течение 24 часов после отправки на email!<br/>';
                $text   .= 'С уважением, администрация проекта!<br />';
                
                $adds    = "From: \"support@wap-mas.ru\" <support@wap-mas.ru>\n";
                $adds   .= "content-type: text/html; charset=utf-8\n";
                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 ();

?>