Отвечаю на тему: http://forum.wowcircle.com/showthread.php?t=150418
Отписал, так как Сфера написала:
Администрация в курсе и пока путей решения этого вопроса не найдено.
Для себя писал, принимайте!
Код:
<?php
//Можно добавить проверку на то, что аккаунт не принадлежит администратору или ГМу
//Коннект к базе аккаунтов
if(isset($_POST['repass']))
{
$login = htmlspecialchars(mysql_real_escape_string($_POST['login']));
$oldpass = htmlspecialchars(mysql_real_escape_string($_POST['oldpass']));
$oldpass = SHA1(strtoupper($login.':'.$oldpass));
$oldpass = trim($oldpass);
$query = mysql_query("SELECT * FROM `account` WHERE `username`='".$login."' AND `sha_pass_hash`='".$oldpass."'");
$num = mysql_num_rows($query);
if($num == 0)
{
echo 'Такой связки Логин - Пароль в базе не найдено.';
}
else {
$psswd = htmlspecialchars(mysql_real_escape_string($_POST['pass']));
$pass = SHA1(strtoupper($login.':'.$psswd));
$pass = trim($pass);
$querys = mysql_query("UPDATE `account` SET `sha_pass_hash`='".$pass."', `sessionkey`='', `v`='', `s`='' WHERE `username`='".$login."'");
if(!$querys)
{
echo 'Произошла ошибка';
}
else {
echo "Смена пароля произведена!";
}
}
}
?>
<font size=3>Восстановить пароль</font>
<form action="" method="post">
<table border=0>
<tr>
<td>Имя аккаунта:</td>
<td><input type="text" name="login" value="" size="30" /></td>
</tr>
<tr>
<td>Старый пароль:</td>
<td><input type="text" name="oldpass" value="" size="30" /></td>
</tr>
<tr>
<tr>
<td>Новый пароль:</td>
<td><input type="text" name="pass" value="" size="30" /></td>
</tr>
<tr>
<input type="hidden" name="repass" value="true">
<td colspan="2"><input type="submit" value="Изменить пароль" /></td>
</tr>
</table>
</form>