Файл: 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>
<?
}