Ru-MaNGOS

Вернуться   Ru-MaNGOS > Дополнения > WWW

Важная информация

WWW Web интерфейс для MaNGOS

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.06.2010, 09:16   #1
deadangel
Новичок
 
Аватар для deadangel
 
Регистрация: 28.04.2010
Адрес: Беларусь, Мозырь
Сообщений: 27
Сказал(а) спасибо: 12
Поблагодарили 6 раз(а) в 4 сообщениях
Записей в дневнике: 1
deadangel На верном пути
Отправить сообщение для deadangel с помощью ICQ Отправить сообщение для deadangel с помощью Skype™
По умолчанию Простая страница восстановления пароля

Написал простой скрипт восстановления пароля. Пароль в БД меняется, но в игру все равно заходит по старому паролю. Вопрос, как можно сделать так, чтобы после смены пароля сразу в игру можно было зайти по новому паролю?

Вот окончательный и переделанный вариант скрипта.


PHP код:
<?=header('Content-type: text/html; charset=utf-8');?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
<head>
    <title>Смена пароля для аккаунта World of Warcraft</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <meta name="author" content="Kazakou V. Andrey" />
    <meta name="email" content="a.v.kazakou@gmail.com" />
</head>
<body>

<?php
function error($str '')
{
    echo 
"<p class=\"error\">$str</p></body></html>";
    exit;
}

function 
sendPassword($login$email)
{
    
mysql_connect('<host>','<login>','<password>') or die(error('Ошибка! Невозможно соедениться с базой данных.'));
    
mysql_select_db('realmd');

    
$login mysql_real_escape_string($login);
    
$email mysql_real_escape_string($email);

    
$result mysql_query('SELECT COUNT(*) as validation FROM `account` WHERE `username` LIKE \''.$login.'\' AND `email` LIKE \''.$email.'\'') or die(error('Ошибка! Невозможно выполнить запрос в БД'));
    
$result mysql_fetch_array($result);
    if(
$result***91;'validation'***93;!=1error('Данная связка Логина и E-mail не обнаружена');

    
$psswd str_shuffle(substr(md5(rand(1,1024)), 06));
    
$sql "UPDATE `account` SET `sha_pass_hash`=SHA1(UPPER(CONCAT('$login',':','$psswd'))), `locked`=0, `v`=NULL, `s`=NULL, `sessionkey`=NULL  WHERE `username`='$login' AND `email`='$email'";
    
$result mysql_query($sql) or die(error(mysql_error().'</p><p>'.$sql));
    if(
mysql_affected_rows()!=1error('Невозможно изменить пароль в базе данных');

    
$to      $email;
    
$subject 'Смена пароля для World of Warcraft';
    
$message 'Ваш новый пароль для аккаунта '.$login.' в игре World of Warcraft: '.$psswd;
    
$headers 'From: robot@example.com' "\r\n" .
        
'Reply-To: robot@example.com' "\r\n" .
        
'Content-type: text/plain; charset=UTF-8' "\r\n" .
        
'X-Mailer: PHP/' phpversion();

    
$mailSended mail($to$subject$message$headers);
    if(!
$mailSendederror('Невозможно отправить письмо с новым паролем.');

    
error('Письмо с новым паролем выслано на указаный адрес.');
}
?>

<?php
    
if(!empty($_POST) and isset($_POST***91;'login'***93;) and isset($_POST***91;'email'***93;)) sendPassword($_POST***91;'login'***93;, $_POST***91;'email'***93;);
?>

    <form action="newpass.php" method="post">
    <table summary="">
            <tr>
                    <td>Имя аккаунта:</td>
                    <td><input type="text" name="login" value="" size="30"  /></td>

            </tr>
            <tr>
                    <td>Адрес e-mail:</td>
                    <td><input type="text" name="email" value="" size="30"  /></td>
            </tr>
            <tr>
                    <td colspan="2"><input type="submit" name="submit" value="Выслать новый пароль"  /></td>
            </tr>
    </table>
    </form>
</body>
</html>

Последний раз редактировалось deadangel; 04.06.2010 в 14:47. Причина: обновил скрипт
deadangel вне форума   Ответить с цитированием
3 пользователя(ей) сказали cпасибо:
StinK (01.06.2010)
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Текущее время: 11:20. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot