Файл: recall.php
Строк: 50
<?php
require 'sys/sid.php';
require 'sys/config.php';
include 'sys/head.php';
if (isset($_GET['id']) && !isset($_POST['ok']))
{
$id = char($_GET['id'], 0);
$sql = mysql_query("SELECT id, email, nick FROM users WHERE recall = '$id' LIMIT 1");
if (mysql_num_rows($sql) == false)
{
err('Восстановление невозможно!');
}
else
{
$isMail = mysql_fetch_assoc($sql);
$rand = genPass(6);
$subject = 'Изменение пароля на http://' . $_SERVER['HTTP_HOST'];
$regmail = 'Здравствуйте ' . $isMail['nick'] . '!<br/>
Вами был изменен пароль на http://' . $_SERVER['HTTP_HOST'] . '. Новый пароль: ' . $rand;
$adds = "From: "$_SERVER[HTTP_HOST]" <$_SERVER[HTTP_HOST]>n";
$adds = "Content-Type: text/html; charset=utf-8n";
mail($isMail['email'], '=?utf-8?B?' . base64_encode($subject) . '?=', $regmail, $adds);
mysql_query("UPDATE users SET password = '" . md5(sha1($rand)) . "' WHERE recall = '$id' LIMIT 1");
mysql_query("UPDATE users SET recall = '' WHERE recall = '$id' LIMIT 1");
msg('Пароль был изменен! Новый пароль выслан на Ваш email.');
}
}
if (isset($_POST['ok']) && !isset($_GET['id']))
{
$nick = trim(mysql_real_escape_string(char($_POST['nick'], 0)));
$email = trim(mysql_real_escape_string(char($_POST['email'], 0)));
$control = mysql_query("SELECT id FROM users WHERE recall != '' AND nick = '$nick' AND email = '$email' LIMIT 1");
if (empty($nick))
{
err('Необходимо ввести игровой ник!');
}
elseif (empty($email))
{
err('Необходимо ввести email!');
}
elseif (mysql_num_rows($control) != false)
{
err('Письмо с инструкциями уже было отправлено ранее, проверьте почту.');
}
else
{
$sql = mysql_query("SELECT email FROM users WHERE nick = '$nick' AND email = '$email' LIMIT 1");
if (mysql_num_rows($sql) == false)
{
err('Игрок с таким ником и email'ом не найден, восстановление невозможно!');
}
else
{
$rand = genPass(20);
mysql_query("UPDATE users SET recall = '$rand' WHERE nick = '$nick' AND email = '$email' LIMIT 1");
$subject = 'Восстановление пароля на http://' . $_SERVER['HTTP_HOST'];
$regmail = 'Здравствуйте ' . $nick . '!<br/>
Вы запрашивали восстановление пароля учётной записи на http://' . $_SERVER['HTTP_HOST'] . '.<br/>
Перейдите по следующей ссылке для продолжения http://' . $_SERVER['HTTP_HOST'] . '/remind_'.$rand.'<br/>
Если Вы не запрашивали восстановление пароля - просто проигнорируйте это сообщение.';
$adds = "From: "$_SERVER[HTTP_HOST]" <$_SERVER[HTTP_HOST]>n";
$adds = "Content-Type: text/html; charset=utf-8n";
mail($email, '=?utf-8?B?' . base64_encode($subject) . '?=', $regmail, $adds);
msg('Письмо с инструкциями отправлено Вам на email.');
}
}
}
echo '<form method="post" action="recall.php">
Ник в игре:
<br/>
<input type="text" name="nick"/>
<br/>
Email:
<br/>
<input type="text" name="email"/>
<br/>
<input type="submit" name="ok" value="Восстановить"/>
</form>
<a href="/">На главную</a>';
include 'sys/foot.php';
?>