Вход Регистрация
Файл: 2/3020.ru/main/password.php
Строк: 49
<?php

/*
---------------------
Восстановление пароля
---------------------
*/ 

ACCESS('guests'); 
  
//Навигация
ECHO "<div class='navigation'>";
ECHO 
"<a href='?'>".ICONS('home'25'fa-fw')."</a>";
ECHO 
"".ICONS('angle-right'20'fa-fw')."";
ECHO 
"".LG('Восстановление пароля')."";
ECHO 
"</div>";

//Установка нового пароля
IF (GET('id') && GET('hash') && DB::GET_COLUMN("SELECT COUNT(*) FROM `USERS` WHERE `ID` = '".INTVAL($_GET['id'])."' AND `EMAIL_HASH` = '".TEXT_ABSOLUTE($_GET['hash'])."' LIMIT 1") == 1){
  
  
$user DB::GET_STRING("SELECT * FROM `USERS` WHERE `ID` = '".INTVAL($_GET['id'])."' AND `EMAIL_HASH` = '".TEXT_ABSOLUTE($_GET['hash'])."' LIMIT 1");
  
  IF (
POST('ok')){
    
    
$password1 POST('password1');
    
$password2 POST('password2');
    
    
$world_set_update $password1;
    
$file_default FILE_GET_CONTENTS(ROOT.'/system/config/password.txt');
    
    IF (
STRIPOS($file_default$world_set_update) !== FALSE) {
      
      
ERROR('Пароль слишком простой. Придумайте более сложный используя и цифры и буквы вместе''session');
      
$err_data 1;
    
    }
    
    IF (!
PREG_MATCH("#^([A-z0-9-_])+$#ui"$password1)) {
      
      
ERROR('В пароле присутствуют запрещенные символы. Используйте только буквы английского алфавита и цифры''session');
      
$err_data 1;
    
    }
    
    IF (
STR($password1) > 20){
      
      
ERROR('Пароль не может быть больше 20 символов''session');
      
$err_data 1;
    
    }
    
    IF (
STR($password1) < 8){
      
      
ERROR('Пароль не может быть меньше 8 символов''session');
      
$err_data 1;
    
    }
    
    IF (
$password1 != $password2){
      
      
ERROR('Пароли не совпадают''session');
      
$err_data 1;
    
    }
    
    IF (!
POST('captcha') OR !POST('captcha_key')) {
      
      
ERROR('Вы не ввели числа с картинки''session');
      
$err_data 1;
    
    }
    
    IF (
MD5((int)POST('captcha') + $captcha_random_seed) != POST('captcha_key')) {
      
      
ERROR('Числа с картинки введены неверно''session');
      
$err_data 1;
    
    }
    
    IF (
$err_data == 1){
      
      
REDIRECT('/?get=password&id='.$user['ID'].'&hash='.$user['EMAIL_HASH'].'');
    
    }
    
    
$hash USER_HASH($user['ID']);
    
    
DB::GET_SET("UPDATE `USERS` SET `HASH` = '".$hash."', `EMAIL_HASH` = '".NULL."', `PASSWORD` = '".SHIF($password1)."' WHERE `ID` = '".$user['ID']."' LIMIT 1");
    
    
SETCOOKIE('DOUBLE'1TIME() + 60 60 24 365);
    
SETCOOKIE('USER_ID'$user['ID'], TIME() + 60 60 24 365);
    
SETCOOKIE('PASSWORD'ENCRYPT($password1$user['ID']), TIME() + 60 60 24 365);
    
    
SUCCESS('Доступ успешно восстановлен');    
    
REDIRECT('/id'.$user['ID'].'');
    
  }
  
  ECHO 
"<div class='list-body'>";
  
  ECHO 
"<div class='list-menu'>";
  
  ECHO 
"<form method='post'>";
  
  
HTML::INPUT('login''Логин''Ваш логин:'NULL$user['LOGIN'], 'form-control-100''text''disabled=disabled');
  
  
HTML::INPUT('password1'NULL'Придумайте пароль:'NULLNULL'form-control-100''password');
  
  
HTML::INPUT('password2'NULL'Повторите пароль:'NULLNULL'form-control-100''password');
  
  
CAPTCHA('Введите числа с картинки''form-control-30');
  
  
HTML::BUTTON('btn-login''ok''plus''ВОССТАНОВИТЬ');
  
  ECHO 
"</form>";
  
  ECHO 
"</div>";
  
  ECHO 
"</div>";
  
}ELSE{

//Отправка сообщения для восстановления доступа
  
  
IF (POST('ok')){
    
    
$err_data 0;
    
    
$login ADSL(POST('login'));
    
$email ADSL(POST('email'));
    
$code MD5(MT_RAND(0000000,9999999));
    
    IF (
DB::GET_COLUMN("SELECT COUNT(*) FROM `USERS` WHERE `LOGIN` = '".$login."' LIMIT 1") == 0){
      
      
ERROR('Такого пользователя не существует''session');
      
$err_data 1;
    
    }
    
    IF (
DB::GET_COLUMN("SELECT COUNT(*) FROM `USERS` WHERE `EMAIL` = '".$email."' AND `LOGIN` = '".$login."' LIMIT 1") == 0){
      
      
ERROR('Не удалось найти пользователя с таким E-mail''session');
      
$err_data 1;
    
    }
    
    IF (!
PREG_MATCH("/^(?:[a-z0-9]+(?:[-_.]?[a-z0-9]+)?@[a-z0-9_.-]+(?:.?[a-z0-9]+)?.[a-z]{2,5})$/i"$email)) {
      
      
ERROR('Проверьте правильность адреса''session');
      
$err_data 1;
    
    }
    
    IF (!
POST('captcha') OR !POST('captcha_key')) {
      
      
ERROR('Вы не ввели числа с картинки''session');
      
$err_data 1;
    
    }
    
    IF (
MD5((int)POST('captcha') + $captcha_random_seed) != POST('captcha_key')) {
      
      
ERROR('Числа с картинки введены неверно''session');
      
$err_data 1;
    
    }
    
    IF (
$err_data == 1){
      
      
REDIRECT('/?get=password');
    
    }
    
    
$user DB::GET_STRING("SELECT `ID` FROM `USERS` WHERE `LOGIN` = '".$login."' LIMIT 1");
    
    
EMAIL($email'Восстановление доступа к аккаунту на '.HTTP_HOST.'''Здравствуйте. Вы получили это письмо для восстановления доступа к аккаунту на нашем сайте <b>'.HTTP_HOST.'</b>.<br /><br /> Ваш логин: <b>'.$login.'</b><br /><br />Перейдите по ссылке для установки нового пароля:<br /><a href="http://'.HTTP_HOST.'/?get=password&id='.$user['ID'].'&hash='.$code.'">http://'.HTTP_HOST.'/?get=password&id='.$user['ID'].'&hash='.$code.'</a>'TEXT_ABSOLUTE(CONFIG('EMAIL')));
    
    
DB::GET_SET("UPDATE `USERS` SET `EMAIL_HASH` = '".$code."' WHERE `ID` = '".$user['ID']."' LIMIT 1");
    
    
SUCCESS('Письмо успешно отправлено на указанный адрес. Перейдите к письму и следуйте дальнейшим инструкциям''session');
    
REDIRECT('/?get=password');  
  
  }
  
  ECHO 
"<div class='list-body'>";
  
  ECHO 
"<div class='list-menu'>";
  
  ECHO 
"<form method='post'>";
  
  
HTML::INPUT('login''Логин''Ваш логин:');
  
HTML::INPUT('email''E-mail''Ваш E-mail, привязанный к логину:'NULLNULL);
  
  
CAPTCHA('Введите числа с картинки''form-control-30');
  
  
HTML::BUTTON('btn-login''ok''envelope''ОТПРАВИТЬ ПИСЬМО');
  
  ECHO 
"</form>";
  
  ECHO 
"</div>";
  
  ECHO 
"</div>";
  
}

ECHO 
"<div class='list-body'>";

ECHO 
"<div class='list-menu'><a href='/?get=login'>";
ECHO 
ICONS('arrow-left'15'fa-fw');
ECHO 
" ".LG('Авторизация')."";
ECHO 
"</a></div>";

ECHO 
"<div class='list-menu'><a href='/?get=registration'>";
ECHO 
ICONS('arrow-left'15'fa-fw');
ECHO 
" ".LG('Регистрация')."";
ECHO 
"</a></div>";

ECHO 
"</div>";

//Навигация
ECHO "<div class='navigation'>";
ECHO 
"<a href='?'>".ICONS('home'25'fa-fw')."</a>";
ECHO 
"".ICONS('angle-right'20'fa-fw')."";
ECHO 
"".LG('Восстановление пароля')."";
ECHO 
"</div>";

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