Файл: 3020.ru/file_3020/plugins/user.password.php
Строк: 79
<?
if ($level == 0) {
  die('У вас нет прав доступа');
}
if (isset($_POST['oldpass']) && isset($_POST['pass1']) && isset($_POST['pass2']) && !isset($_SESSION['code'])) {
    $password = $sql->esc($_POST['oldpass']);
    $newpassword = $sql->esc($_POST['pass1']);
    
    if ($sql -> selectCount("SELECT COUNT(*) FROM `users` WHERE `id` = '" . $user['id'] . "' AND `password` = '" . md5($password) . "'") == 0) {
        $err[] = 'Неверный старый пароль';
    }
  
    if ($_POST['pass1'] && !preg_match("#^([A-z0-9])+$#ui", $_POST['pass1'])) {
        $err[] = 'Пароль должен содержать только английские буквы и цифры';
    }
    
    if ($_POST['pass1'] != $_POST['pass2']) {
        $err[] = 'Пароли не совпадают';
    }
    
    if (strlen2($_POST['pass1']) > 20) {
        $err[] = 'Пароль слишком длинный';
    } elseif (strlen2($_POST['pass1']) < 6) {
        $err[] = 'Пароль слишком короткий';
    } 
  
  if (!isset($err)) {
    $_SESSION['new_password'] = $newpassword;
    
    $code = mt_rand(11111, 99999);
    
        if (function_exists('mail')) {
    // в этом массиве то, что попадет в наш HTML шаблон письма
    $array = array('hello' => 'Здравствуйте ' . $user['login'], // {hello} . Приветствие  
    'message' => 'Вы хотите изменить свой пароль на сайте <b>' . text($_SERVER['SERVER_NAME']) . '</b> <br />
            Ваш код подтверждения на смену пароля: ' . $code . '
            ', // обязательно текст письма, но само завизит от того что в шаблоне указано. у меня {message}
    'linkbutton' => 'http://' . $_SERVER['HTTP_HOST'] . '/?func=user.auth', // у меня в шаблоне кнопка, это ссылка в ней {linkbutton}
    'textbutton' => 'Авторизация' // а это название моей кнопки {textbutton}
    );
        $Subject = 'Подтверждение Смены Пароля';  // обязательно заголовок письма
        $addAdress = $user['email']; // сверх важно!! кому письмо
        $template = 'default'; // название шаблона и папки в которой он лежит. Если у вас свой шаблон, напишите название воего 
        // пробуем выслать наше письмо
        $OutMailer = Mailer($array, $Subject, $addAdress, $template);
        if ($OutMailer === false)
        {
        
        }
else  echo $OutMailer; // если есть ошибки, их покажет        
        }
    
    $_SESSION['code'] = $code;
  }
}
if (isset($_POST['code'])) {
  if (isset($_POST['code']) && $_SESSION['code'] != $_POST['code']) {
    $err[] = 'Неверный код подтверждения';
  }
  
    if (!isset($err)) {
        $sql -> update("UPDATE `users` SET `password` = '" . md5($_SESSION['new_password']) . "' WHERE `id` = '$user[id]' LIMIT 1");
    
                if (function_exists('mail')) {
            
            // в этом массиве то, что попадет в наш HTML шаблон письма
    $array = array('hello' => 'Здравствуйте ' . $user['login'], // {hello} . Приветствие  
    'message' => 'Вы успешно изменили пароль от вашего аккаунта на сайте <b>' . text($_SERVER['SERVER_NAME']) . '</b> <br />
            Ваш логин: ' . text($user['login']) . ' [ID ' . $user['id'] . ']<br />
            Ваш пароль: ******<br />
            ', // обязательно текст письма, но само завизит от того что в шаблоне указано. у меня {message}
    'linkbutton' => 'http://' . $_SERVER['HTTP_HOST'] . '/?func=user.auth', // у меня в шаблоне кнопка, это ссылка в ней {linkbutton}
    'textbutton' => 'Авторизация' // а это название моей кнопки {textbutton}
    );
        $Subject = 'Изменение пароля';  // обязательно заголовок письма
        $addAdress = $user['email']; // сверх важно!! кому письмо
        $template = 'default'; // название шаблона и папки в которой он лежит. Если у вас свой шаблон, напишите название воего 
        // пробуем выслать наше письмо
        $OutMailer = Mailer($array, $Subject, $addAdress, $template);
        if ($OutMailer === false)
        {
        
        }
else  echo $OutMailer; // если есть ошибки, их покажет            
        }
      
        $_SESSION['id_user'] = $user['id'];
        setcookie('id_user', $user['id'], time() + 60 * 60 * 24 * 365);
        setcookie('pass', cookie_encrypt($_SESSION['new_password'], $user['id']), time() + 60 * 60 * 24 * 365);
    unset($_SESSION['new_password']);
    unset($_SESSION['code']);
        $messages[] = 'Вы успешно изменили свой пароль';
    }  
}
$system['title'] = 'Смена пароля';
require SYS . 'header.php';
if (isset($_SESSION['code'])) {
?>
<div class="alert alert-success" style="margin: 2px;">
  <button type="button" class="close" data-dismiss="alert">×</button>
  На ваш Email выслано письмо, с кодом подтверждения.
</div>
<div class="nav2">
  
  <form class="form-horizontal" action="?func=user.password" method="POST">
    <div class="control-group">
      <label class="control-label" for="code">Введите код</label>
      <div class="controls">
        <input type="text" id="code" name="code" placeholder="Код полученный по Email..">
      </div>
    </div>
    
    <div class="control-group">
      <div class="controls">
        <button type="submit" class="btn">Изменить</button>
      </div>
    </div>
  </form>
</div>
<?
} else {
?>
<div class="nav2">
  <form class="form-horizontal" action="?func=user.password" method="POST">
    <div class="control-group">
      <label class="control-label" for="oldpass">Старый пароль</label>
      <div class="controls">
        <input type="text" id="oldpass" name="oldpass" placeholder="Старый пароль..">
      </div>
    </div>
    
    <div class="control-group">
      <label class="control-label" for="pass1">Новый пароль</label>
      <div class="controls">
        <input type="password" id="pass1" name="pass1" placeholder="Пароль..">
      </div>
    </div>
    
    <div class="control-group">
      <label class="control-label" for="pass2">Повторите пароль</label>
      <div class="controls">
        <input type="password" id="pass2" name="pass2" placeholder="Повторите пароль..">
      </div>
    </div>
    
    <div class="control-group">
      <div class="controls">
        <button type="submit" class="btn">Продолжить</button>
      </div>
    </div>
  </form>
</div>
<?
}
if ($level >= 3) {
?>
<div class="foot">
« <a href="?func=admin">Админ панель</a>
</div>
<?
}