Файл: user/pass.php
Строк: 123
<?php
/* DCMS S (Special)
* Версия файла 0.0.1
* Дата последнего редактирования 11.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';
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()), 0, 20);
$subject = "Восстановление пароля";
$regmail = "Здравствуйте $user2[nick]<br />
Вы активировали восстановление пароля<br />
Для установки нового пароля перейдите по ссылке:<br />
<a href='http://$_SERVER[HTTP_HOST]/user/pass.php?id=$user2[id]&set_new=$new_sess'>http://$_SERVER[HTTP_HOST]/?pass&id=$user2[id]&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['pass']) and mysql_result(mysql_query("SELECT COUNT(*) FROM `user` WHERE `id` = $user[id] AND `pass` = '" . shif($_POST['pass']) . "' LIMIT 1"), 0) == 1) {
if (isset($_POST['pass1']) && isset($_POST['pass2'])) {
if ($_POST['pass1'] == $_POST['pass2']) {
if (utf8_strlen($_POST['pass1']) < 6) {
$err = 'По соображениям безопасности новый пароль не может быть короче 6-ти символов';
}
if (utf8_strlen($_POST['pass1']) > 32) {
$err = 'Длина пароля превышает 32 символа';
}
} else {
$err = 'Новый пароль не совпадает с подтверждением';
}
} else {
$err = 'Введите новый пароль';
}
} else {
$err = 'Старый пароль неверен';
}
//Поисковое слово
$world_set_update = $_POST['pass1'];
//файл где ищем
$file_default = file_get_contents(H . 'sys/txt/if_password.txt');
//если нету записываем
if (stripos($file_default, $world_set_update) !== false) {
$err = 'Новый пароль слишком простой';
}
if (!isset($err)) {
mysql_query("UPDATE `user` SET `pass` = '" . shif($_POST['pass1']) . "' , `pass_time` = '" . time() . "' WHERE `id` = '$user2[id]' LIMIT 1");
setcookie('pass', cookie_encrypt($_POST['pass1'], $user2['id']), time() + 60 * 60 * 24 * 365);
msg('Пароль успешно изменен');
}
err();
echo "<form class='list-group-item' action='/?pass&?id=$user2[id]&set_new=" . esc($_GET['set_new'], 1) . "&$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 class='form-control' type='password' name='pass1' value='' /><br />n";
echo "Подтверждение:<br />n<input class='form-control' type='password' name='pass2' value='' /><br />n";
echo "<button name='save' class='btn btn-success'>Сохранить</button>";
echo "</form>";
} else {
err();
?>
<div class = 'list-group-item'>
<b>Для восстановления пароля:</b><br />
• Введите в соответственную форму Ваш логин и e-mail. <br />
• На Ваш E-mail придет ссылка для установки нового пароля.<br />
• Если Вы не заполнили E-mail в анкете, обратитесь в службу поддержки данного ресурса.
</div>
<form action='?<?= $passgen ?>' class='list-group-item' method='post'>
<div class="panel-body">
<div class = 'input-group'>
<div class = 'input-group-addon'>
<span class="fa fa-pencil"></span>
</div>
<input class='form-control' type = 'text' placeholder = 'Введите Логин' name = 'nick' title = 'Логин' value = '' maxlength = '32' size = '16' />
</div>
<br />
<div class = 'input-group'>
<div class = 'input-group-addon'>
<span class="fa fa-at"></span>
</div>
<input class='form-control' type = 'text' placeholder = 'Введите E-mail' name = 'mail' title = 'E-mail' value = '' maxlength = '32' size = '16' />
</div>
<br />
<button class = 'btn btn-success'>Далее</button>
</div>
</form>
<?php
}
require_once 'sys/inc/tfoot.php';