Вход Регистрация
Файл: 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';

?>
Онлайн: 1
Реклама