Вход Регистрация
Файл: clik.online/recovery.php
Строк: 63
<?php
/**
* @author: Egor Smolyakov, 2012.
* @e-mail: mr.stelhammer@gmail.com
*/
defined('ROOT') or define('ROOT'str_replace('\', '/', realpath(dirname (__FILE__))));
require_once ROOT . '
/system/init.php'; // инициализация ядра
if($is_user) {
redir(HOST);
}
page_head('
Восстановление пароля'); // название страницы
if(isset($_GET['
a_key']) && DB :: run() -> querySingle('select count(*) from `userswhere `activate_key` = "'.protect($_GET['a_key']).'"')==1) {
$us = DB :: run() -> queryFetch('
select from `userswhere `activate_key` = "'.protect($_GET['a_key']).'"');

if(!empty($_POST)) {
$new_p = protect($_POST['
new_password']);

    if(strlenx($new_p) < 6 or strlenx($new_p) > 32)
    $error = '
Количество символов в пароле может быть от 6 до 32.';
    
        elseif($new_p == $us['
login'])
    $error = '
Логин не может быть таким же как новый пароль.';
    
    else {
    DB :: run() -> query ("UPDATE `users` SET `password` = ?, `activate_key` = '' WHERE `id` = '
$us[id]'", array(md5_hash($new_p)));
    setcookie('
login', $us['login'], time()+3600*24*365, '/'); 
    setcookie('
password', $new_p, time()+3600*24*365, '/'); 

    echo  '
<div class="menu">Данные успешно обновлены.</div>';
    echo '
<div class="menu"><a href="'.HOST.'/">На главную</a></div>';
    page_foot(); // низ сайта
    }
}
if (!empty($error)) {
echo '
<div class="menu">'.$error.'</div>';
}
echo '
<div class="menu">
<
form action="" method="POST">
Введите новый пароль:<br />
<
input type="text" name="new_password" /><br />
<
input type="submit" value="Сохранить" /><br />
</
form>
</
div>';
echo '
<div class="menu"><a href="'.HOST.'/">На главную</a></div>';
page_foot(); // низ сайта
}
if(isset($_POST['
log'],$_POST['captcha'])) {
$log = protect($_POST['
log']);
$captcha = protect($_POST['
captcha']);

    if(strlenx($log) < 1 || strlenx($log) > 32)
    $error = '
Пожалуйстаукажите логин или ID.';
    
    elseif(empty($captcha))
    $error = '
Введите код с картинки.';
    
    elseif(empty($_SESSION['
captcha']))
    $error = '
Ошибка в сессиях.';
    
    else {
    if ($_SESSION['
captcha'] != $captcha) {
    $error = '
Код с картинки введен неверно.';
    } else {
    $us = DB :: run() -> queryFetch('
select from `userswhere (`login` = "'.$log.'" OR `id` = "'.$log.'");');
if ($us > 0) {
$subject = '
Перейдите по ссылке';
        $adds = "From: <$set[reg_mail]>n";
        $adds .= "X-sender: <$set[reg_mail]>n";
        $rand_key = md5_hash(mt_rand(500000000,2000000000000000));
        $msg = '
Для смены пароля перейдите по ссылке <a href="'.HOST.'/recovery/'.$rand_key.'/">'.HOST.'/recovery/'.$rand_key.'/</a>.';
        $adds .= "Content-Type: text/html; charset=utf-8n";
    $subject = '
=?utf-8?B?' . base64_encode($subject) . '?='; //subj encoding trouble!
        @mail($us['
email'],$subject,$msg,$adds);
        
    DB :: run() -> query ("UPDATE `users` SET `activate_key` = '".
$rand_key."' WHERE `id` = ?;", array($us['id']) );
echo '
<div class="menu">На указанный при регистрации e-mail отправлено письмоследуйте инструкции в нем.</div>';
unset($captcha);
}else{
$error = '
По указанным данным пользователя не найдено.';
}
    }
}
}
if (!empty($error)) {
echo '
<div class="menu">'.$error.'</div>';
}
echo '
<div class="menu">
<
form action="'.HOST.'/recovery/" method="POST">
Введите свой логин или ID:<br />
<
input type="text" name="log"/><br />';
echo '
<img src="'.HOST.'/captcha.jpg" alt="вкл. картинки" /> <br />
<
input type="text" size="9" name="captcha"/><br />';
echo '
<input type="submit" value="Отправить" /><br />
</
form>
</
div>';
 echo '
<div class="menu"><a href="'.HOST.'/">На главную</a></div>';
page_foot(); // низ сайта
?>
Онлайн: 1
Реклама