Файл: www-1/forgot.php
Строк: 85
<?php
define('cms', 1);
require_once 'core.php';
echo '<div class="menu">Напоминание пароля</div>';
echo '<div class="pt">';
Error_Reporting(E_ALL & ~E_NOTICE);
if ($user)
{
header('Location: ./logout.php');
}
else
{
switch($_GET['a'])
{
default:
if (isset($_POST['login']) AND isset($_POST['email']))
{
$error = '';
if (mb_strlen($_POST['login']) < 4 || mb_strlen($_POST['login']) > 20) $error .= 'Неверная длина логина<br/>';
if (mb_strlen($_POST['email']) < 4 || mb_strlen($_POST['email']) > 50) $error .= 'Неверная длина e-mail<br/>';
if (empty($error))
{
$user_p = mysql_fetch_array(mysql_query("SELECT `login`, `email`, `id`, `email`, `change_pass` FROM `users` WHERE `login` = '".addslashes($_POST['login'])."' AND `email` = '".addslashes($_POST['email'])."';"));
if (!empty($user_p))
{
if (empty($user_p['change_pass']))
{
function gen($num){
$st='';
$chars = 'ABDEFGHKNQRSTYZabdefhiknrstyz0123456789';
$nchars=strlen($chars);
for ($i=0; $i<$num; $i++){
$st .= substr($chars, rand(1,$nchars)-1,1);
}
return $st;
}
$gen_p = md5(md5(gen(10)));
mail($user_p['email'], "Восстановление пароля", $user_p['login'].', чтобы сменить ваш пароль, перейдите по ссылке: http://portald.ru/forgot.php?a=c_pass&i='.$gen_p.'');
mysql_query("UPDATE `users` SET `change_pass` = '".$gen_p."'");
echo 'На вашу почту было отправлено письмо с инструкцией<br /><a href="./enter.php">Войти</a>';
} else echo 'Запрос на восстановление пароля был отправлен ранее.<br /><a href="./forgot.php">Вернуться</a>';
} else echo 'Неправельный логин или e-mail<br /><a href="./forgot.php">Вернуться</a>';
} else echo $error.'<br /><a href="./forgot.php">Вернуться</a>';
} else
{
echo '<form class="form" action="?" method="post">';
echo '
Введите ваш логин: <br/><input type="text" maxlength="20" name="login"/></br>
E-mail*: <br/><input type="text" maxlength="20" name="email" /></br>
<input type="submit" name="submit" value="Далее" /></form>';
echo '<br />* Вводите e-mail, указаный при регистрации.';
echo '<br /><a href="./enter.php">Назад</a>';
}
break;
case 'c_pass':
if (isset($_GET['i']))
{
$us = mysql_fetch_array(mysql_query("SELECT `login`, `email`, `id`, `email`, `change_pass`, `pass` FROM `users` WHERE `change_pass` = '".addslashes($_GET['i'])."'"));
if (!empty($us))
{
if (isset($_POST['login']) AND isset($_POST['pass']))
{
$error = '';
if (mb_strlen($_POST['pass']) < 4 || mb_strlen($_POST['pass']) > 10) $error .= 'Неверная длина пароля<br/>';
if (mb_strlen($_POST['login']) < 4 || mb_strlen($_POST['login']) > 20) $error .= 'Неверная длина логина<br/>';
if (empty($error))
{
$us2 = mysql_fetch_array(mysql_query("SELECT `login`, `email`, `id`, `email`, `change_pass`, `pass` FROM `users` WHERE `change_pass` = '".addslashes($_GET['i'])."' AND `login` = '".addslashes($_POST['login'])."'"));
if(!empty($us2))
{
mysql_query("UPDATE `users` SET `pass` = '".addslashes(md5(md5($_POST['pass'])))."', `change_pass` = '' WHERE `change_pass` = '".$_GET['i']."' AND `login` = '".addslashes($_POST['login'])."'");
echo 'Ваш новый пароль: '.htmlentities($_POST['pass'], ENT_QUOTES).'<br /><a href="./enter.php">Вход в игру</a>';
} else echo 'Неверный пользователь<br /> <a href="?a=c_pass&i='.htmlentities($_GET['i'], ENT_QUOTES).'">Назад</a>';
} else echo $error.'<a href="?a=c_pass&i='.htmlentities($_GET['i'], ENT_QUOTES).'">Назад</a>';
} else
{
echo '<form method=POST actiom="">
Введите ваш логин: <br/><input type="text" maxlength="20" name="login"/></br>
Ваш новый пароль: <br/><input type="text" maxlength="20" name="pass" /></br>
<input type="submit" name="submit" value="Далее" /></form>';
}
} else header('Location: ./enter.php');
} else header('Location: ./enter.php');
break;
}
}
echo '</div>';
include './include/foot.php';
?>