Файл: bloodlands.pw/forgot.php
Строк: 67
<?php
define('cms', 1);
require_once 'core.php';
echo '<div class="head" align="center">Напоминание пароля</div><div class="all"><div class="pt" align="center"><br/>';
if ($user) header('Location: ./index.php'); else {
switch($_GET['a']) {
default:
if (isset($_POST['ok'])){
$login = filter($_POST['login']);
$email = filter($_POST['email']);
$proverochka = (!empty($_POST['spam']) ? $_POST['spam'] : false);
$proverochka = filter($proverochka);
$error = '';
if (mb_strlen($login) < 4 || mb_strlen($login) > 40) $error .= 'Неверная длина ника!<br/>';
if (mb_strlen($email) < 4 || mb_strlen($email) > 50) $error .= 'Неверная длина e-mail!<br/>';
if (md5($proverochka) !== $_POST['otvet']) $error .= 'Неверный ввод проверочных цифр!<br/>';
if (empty($error)){
$user_p = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `login` = '".$login."' AND `email` = '".$email."'"));
if (!empty($user_p)) {
if (empty($user_p['change_pass'])){
$gen_p = md5(md5(gen(10)));
$mess = iconv('utf-8', 'cp1251', 'Для того, чтобы сменить ваш пароль, перейдите по ссылке: http://bloodlands.pw/forgot.php?a=c_pass&i='.$gen_p);
mail($user_p['email'], "Восстановление пароля", $mess);
$ok = mysql_query("UPDATE `users` SET `change_pass` = '".$gen_p."' WHERE `id` = '".$user_p['id']."'");
if($ok) echo '<b>На вашу почту было отправлено письмо с дальнейшей инструкцией!</b><br/><br/>';
} else echo '<b>Запрос на восстановление пароля был отправлен ранее!</b><br/><br/>';
} else echo '<b>Неправильный ник или e-mail!</b><br/><br/>';
} else echo '<b>'.$error.'</b><br/><br/>';
} else {
$_1 = rand(1,9);
$_2 = rand(1,9);
$proverochka_a = $_1+$_2;
echo '<form class="form" action="?" method="post">Прежде чем вводить ваши данные, запишите ответ данного выражения в первое поле:
<br/><br/><b>Ответ ['.$_1.'+'.$_2.']:</b><br/>
<input type="text" name="spam" class="text">
<input type="hidden" name="otvet" value='.md5($proverochka_a).'><br/>
<b>Никнейм:</b><input type="text" maxlength="40" name="login" class="text">
<b>Email:</b><input type="text" maxlength="50" name="email" class="text">
<input type="submit" name="ok" value="Восстановить" class="button"></form>';
}
echo'<br/><a class="line" href="./index.php">Главная</a>';
break;
case 'c_pass':
$i = filter($_GET['i']);
if (isset($i)){
$us = mysql_fetch_array(mysql_query("SELECT `id`,`email`,`change_pass`,`pass` FROM `users` WHERE `change_pass` = '".$i."'"));
if (!empty($us)){
if (isset($_POST['ok'])){
$pass = filter($_POST['pass']);
$error = '';
if (mb_strlen($_POST['pass']) < 4 || mb_strlen($_POST['pass']) > 20) $error .= 'Неверная длина пароля!<br/>';
if (empty($error)){
$ok = mysql_query("UPDATE `users` SET `pass` = '".md5(md5($pass))."', `change_pass` = '' WHERE `change_pass` = '".$i."' AND `id` = '".$us['id']."'");
if($ok) echo '<b>Новый пароль:</b> '.$pass.'<br /><br/>';
} else echo '<div class="error">'.$error.'</div><br/>';
} else echo '<form method="POST" action=""><b>Новый пароль (4-20):</b><br/>
<input type="text" maxlength="20" name="pass" /></br>
<input type="submit" name="ok" value="Сохранить" /></form>';
echo'<br/><a class="line" href="./index.php">Главная</a>';
} else header('Location: ./index.php');
} else header('Location: ./index.php');
break;
}}
include './include/foot.php';
?>