Вход Регистрация
Файл: pages/user/recovery.php
Строк: 23
<?

if ($user) {
    
Redirection('/user/');
}
$PageConfig = [
    
'title' => 'Восстановление пароля',
];

PageConfig($PageConfig);

$type 0;
if (isset(
$_POST['email'])) {
    
$key md5(mt_rand(1,999999) . time() . mt_rand(1,999999));
    
$userses $sql->fetch("SELECT * FROM `users` where `email` = ? LIMIT 1;",[$_POST['email']]);
    if (!
$userses) {
        
$err[] = 'Такого email нету в нашей базе';
    }
    if (!isset(
$err)) {
        
$sql->query("INSERT INTO `users_recovery` (`id_user`, `key`, `date_create`) values ('{$userses['id']}', '{$key}', '"time() ."')");
        
$text "Здравствуйте $userses[login]<br />
            Вы активировали восстановление пароля<br />
            Для установки нового пароля перейдите по ссылке:<br />
            <a href='http://
$_SERVER[HTTP_HOST]/user/recovery/?key=$key'>http://$_SERVER[HTTP_HOST]/user/recovery/?key=$key</a><br />
        "
;
        
$adds  "From: "password@$_SERVER[HTTP_HOST]" <password@$_SERVER[HTTP_HOST]>n";
        
$adds .= "Content-Type: text/html; charset=utf-8n";
        
mail($userses['email'],'=?utf-8?B?'.base64_encode("Восстановление пароля").'?=',$text,$adds);
        
Redirection('?','Пароль выслан на email');
    }
}

if (isset(
$_GET['key'])) {
    
$ses $sql->fetch("SELECT * FROM `users_recovery` where `key` = ? LIMIT 1;",[$_GET['key']]);
    if (!
$ses) {
        
Redirection('?','Ошибка ,код недействителен');
    }
    
$type 1;
}
if (isset(
$err)) {
    
err($err);
}
if (
$type == 1) {
    if (isset(
$_POST['save'])) {
        
$pass1 shif($_POST['pass1']);
        
$pass2 shif($_POST['pass2']);
        
        if (
$_POST['pass1'] != $_POST['pass2']) {
            
$err[] = 'Новый пароль не совпадает с подтверждением';
        }
        
$cp $sql->rowCount("SELECT * FROM `users_password` WHERE `id_user` = '{$ses['id_user']}' AND `pass` = '" shif($_POST['pass1']) . "'");
        if (
$cp != 0) {
            
$err[] = 'Вы уже использовпли этот пароль';
        }
        
$file_default file_get_contents(H.'core/config/if_password.txt');
        if (
stripos($file_default$_POST['pass1']) !== false || is_numeric($_POST['pass1'])) {
            
$err[] = 'Пароль слишком простой';
        }
        if (!isset(
$err)) {
            
$sql->query("UPDATE `users` SET `password` = ? WHERE `id` = ?", [shif($_POST['pass1']), $ses['id_user']]);
            
$sql->query("DELETE FROM `users_recovery` WHERE `id_user` = ".$ses['id_user']);
            
$_SESSION['user_id'] = $ses['id_user'];
            
cookie('user_id'$ses['id_user'], $set['user_cookie']);
            
cookie('user_pass'shif($_POST['pass1']), $set['user_cookie']);    
            
CacheDelete::user($ses['id_user']);            
            
Redirection('/user/','Пароль успешно восстановлен');
        }
    }
}

$t->assign('type'$type);
$t->assign('ses'$ses);
echo 
$t->fetch('user.recovery');
Онлайн: 1
Реклама