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

/* DCMS S (Special)
 * Версия файла 0.0.1
 * Дата последнего редактирования 02.11.2015
 * Модифицировал densnet
 */

require_once 'sys/inc/start.php';
require_once 
'sys/inc/compress.php';
require_once 
'sys/inc/sess.php';
require_once 
'sys/inc/settings.php';
require_once 
'sys/inc/db_connect.php';
require_once 
'sys/inc/ipua.php';
require_once 
'sys/inc/fnc.php';

$show_all true;

require_once 
'sys/inc/user.php';

user::only_unreg();

$set['title'] = 'Восстановление пароля';

require_once 
'sys/inc/thead.php';

if (isset(
$_POST['nick']) && isset($_POST['mail']) && $_POST['nick'] != NULL && $_POST['mail'] != NULL) {
    if (
mysql_result(mysql_query("SELECT COUNT(*) FROM `user` WHERE `nick` = '" mysql_real_escape_string($_POST['nick']) . "'"), 0) == 0) {
        
$err "Пользователь с таким логином не зарегистрирован";
    } elseif (
mysql_result(mysql_query("SELECT COUNT(*) FROM `user` WHERE `nick` = '" mysql_real_escape_string($_POST['nick']) . "' AND `ank_mail` = '" mysql_real_escape_string($_POST['mail']) . "'"), 0) == 0) {
        
$err 'Неверный адрес E-mail или информация о E-mail отсутствует';
    } else {
        
$q mysql_query("SELECT * FROM `user` WHERE `nick` = '" mysql_real_escape_string($_POST['nick']) . "' LIMIT 1");
        
$user2 mysql_fetch_assoc($q);
        
$new_sess substr(md5(passgen()), 020);
        
$subject "Восстановление пароля";
        
$regmail "Здравствуйте $user2[nick]<br />
Вы активировали восстановление пароля<br />
Для установки нового пароля перейдите по ссылке:<br />
<a href='http://
$_SERVER[HTTP_HOST]/pass.php?id=$user2[id]&amp;set_new=$new_sess'>http://$_SERVER[HTTP_HOST]/pass.php?id=$user2[id]&amp;set_new=$new_sess</a><br />
Данная ссылка действительна до первой авторизации под своим логином (
$user2[nick])<br />
С уважением, администрация сайта<br />
"
;
        
$adds "From: "password@$_SERVER[HTTP_HOST]" <password@$_SERVER[HTTP_HOST]>n";
        
$adds .= "Content-Type: text/html; charset=utf-8n";
        
mail($user2['ank_mail'], '=?utf-8?B?' base64_encode($subject) . '?='$regmail$adds);

        
mysql_query("UPDATE `user` SET `sess` = '$new_sess' WHERE `id` = '$user2[id]' LIMIT 1");

        
msg("Ссылка для установки нового пароля отправлена на e-mail "$user2[ank_mail]"");
    }
}


if (isset(
$_GET['id']) && isset($_GET['set_new']) && strlen($_GET['set_new']) == 20 && mysql_result(mysql_query("SELECT COUNT(*) FROM `user` WHERE `id` = '" intval($_GET['id']) . "' AND `sess` = '" mysql_real_escape_string($_GET['set_new']) . "'"), 0) == 1) {
    
$q mysql_query("SELECT * FROM `user` WHERE `id` = '" intval($_GET['id']) . "' LIMIT 1");
    
$user2 mysql_fetch_assoc($q);

    if (isset(
$_POST['pass1']) && isset($_POST['pass2'])) {
        if (
$_POST['pass1'] == $_POST['pass2']) {
            if (
text::utf8_strlen($_POST['pass1']) < 6) {
                
$err 'По соображениям безопасности новый пароль не может быть короче 6-ти символов';
            }
            if (
text::utf8_strlen($_POST['pass1']) > 32) {
                
$err 'Длина пароля превышает 32 символа';
            }
        } else {
            
$err 'Новый пароль не совпадает с подтверждением';
        }

        if (!isset(
$err)) {
            
setcookie('id_user'$user2['id'], time() + 60 60 24 365);
            
mysql_query("UPDATE `user` SET `pass` = '" crypt::hash($_POST['pass1']) . "' WHERE `id` = '$user2[id]' LIMIT 1");
            
setcookie('pass'crypt::encrypt($_POST['pass1'], $user2['id']), time() + 60 60 24 365);
            
msg('Пароль успешно изменен');
        }
    }

    
aut();
    
err();

    echo 
"<form class = 'comm' action='/pass.php?id=$user2[id]&amp;set_new=" text::esc($_GET['set_new'], 1) . "&amp;$passgen' method="post">n";
    echo 
"Логин:<br />n";
    echo 
"<input type="text" disabled='disabled' value='$user2[nick]' maxlength="32" size="16" /><br />n";
    echo 
"Новый пароль:<br />n<input type='password' name='pass1' value='' /><br />n";
    echo 
"Подтверждение:<br />n<input type='password' name='pass2' value='' /><br />n";
    echo 
"<button name = 'save' class = 'button-green'>Сохранить</button>";
    echo 
"</form>";
} else {
    
aut();
    
err();

    echo 
"<div class = 'comm'>";
    echo 
"<b>Для восстановления пароля:</b><br />";
    echo 
"&#8226; Введите в соответственную форму Ваш логин и e-mail. <br />";
    echo 
"&#8226; На Ваш E-mail придет ссылка для установки нового пароля.<br />";
    echo 
"&#8226; Если Вы не заполнили E-mail в анкете, обратитесь в службу поддержки данного ресурса.</div>";

    echo 
"<form action="?$passgen" class = 'comm' method="post"><center>n";
    echo 
"Логин:<br />n";
    echo 
"<input type = 'text' placeholder = 'Введите Логин' name = 'nick' title = 'Логин' value = '' maxlength = '32' size = '16' /><br />n";
    echo 
"E-mail:<br />n";
    echo 
"<input type = 'text' placeholder = 'Введите E-mail' name = 'mail' title = 'E-mail' value = '' maxlength = '32' size = '16' /><br />n";
    echo 
"<button class = 'button-green'>Далее</button>";
    echo 
"</center></form>";
}

require_once 
'sys/inc/tfoot.php';
Онлайн: 0
Реклама