Скрипт для смены пароля пользователя

Неплохо будет так же предоставлять возможность менять пароль пользователя. Для смены пароля пользователя надо запросить следующие данные: Логин, текущий пароль, новый пароль и подтверждение нового пароля. Логин и текущий пароль нужны для аутентификации (проверки подлинности пользователя). Новый пароль - понятно, он будет записан на место старого, если аутентификация пройдёт успешно.

В страницу, восстановления пароля необходимо внести следующий код:
(Краткий алгоритм смотрите внизу, после исходного кода).
<?
include "config.php"; // подключаем файл с конфигом
if(isset($_GET['step'])) $step = $_GET['step'];
if($step == 2)
{
      if(Test_mysql_connect() == false)
      {
            echo "<font color='#ff0000'> Ошибка!
            Скорее всего игровой сервер неактивен, попробуйте зайти сюда позже. </font></a></font>";
            End_page();
      }
      $msconn = mysql_connect($dbhost, $dbuser, $dbpass);
      if($msconn == FALSE)
      {
            echo "<font color='#ff0000'>Ошибка соединения.
            Скорее всего игровой сервер неактивен, попробуйте зайти сюда позже.</font>";
            End_page();
      }
      if(!MYSQL_SELECT_DB($dbname))
      {
            echo "<font color='#ff0000'>БД не найдена! Скорее всего эта ошибка вызвана сбоем на сервере</font>"; End_page();
      }
      $login = trim($_POST[login]);
      $pass = $_POST[pass];
      $newpass = $_POST[newpass];
      $re_newpass = $_POST[re_newpass];
      if ($login == "")
      {
            echo ("<center><font color='#ff0000'>Вы не ввели логин</font></center>");
            End_page();
      }
      if ($newpass != $re_newpass)
      {
            echo ("<center><font color='#ff0000'>Новый пароль и подтверждение не совпадают</font><br></center>");
            End_page();
      }
      $q = mysql_query("SELECT * FROM accounts_info WHERE login='".$login."'");
      if ($q == FALSE)
      {
             echo ("<center><font color='#ff0000'>Произошла ошибка. Попробуйте снова!</font></center>");
            End_page();
      }
      if(mysql_numrows($q) > "0")
      {
            $row = mysql_fetch_array($q);
            if($pass == $row['pass'])
            {
            $gamepass = base64_encode(pack("H*", sha1(utf8_encode($newpass))));
            $result = mysql_query("UPDATE accounts SET password='".$gamepass."' WHERE login='".$login."'");
            if($result == FALSE)
            {
             echo "Ошибка запроса. Свяжитесь с администрацией.";
             End_page();
            }
            $result = mysql_query("UPDATE accounts_info SET pass='".$newpass."' WHERE login='".$login."'");
            if($result == FALSE)
            {
             echo "Пароль от аккаунта изменён, но произошли ошибки. Вы не сможете восстановить ваш пароль в случае утери.";
             End_page();
            }
            echo "Пароль изменён.";
            }
            else
            {
                   echo ("<center><font color='#ff0000'>Текущий пароль неправильный</font></center>");
            }
      }
      else
      {
            echo ("<center><font color='#ff0000'>Указанный логин не зарегистрирован</font></center>");
      }
      End_page();
}
else
{
?>
<form name="form1" method="post" action="?step=2">
<div align="center">
<table width="250" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="right"><font size="2">Логин</font>  <br></td>
<td ><label>
<input name="login" type="text" id="login">
</label><br>
</td>
</tr>
<tr>
<td align="right"><font size="2">Пароль</font>  </td>
<td ><label>
<input name="pass" type="password">
</label><br><br>
</td>
</tr>
<tr>
<td align="right"><font size="2">Новый пароль</font>  </td>
<td ><label>
<input name="newpass" type="password">
</label><br><br>
</td>
</tr>
<tr>
<td align="right"><font size="2">Ещё раз</font>  </td>
<td ><label>
<input name="re_newpass" type="password">
</label>
</td>
</tr>
</table>
</div>
<br>
<label>
<input type="submit" name="Submit" value="Сменить пароль">
</label>
</form>
<?
      End_page();
}
function End_page()
{
      ?>
             Здесь футер вашей страницы - то, что идёт внизу страницы
      <?
      exit;
}
?>
       После загрузки страницы должны появиться текстовые поля для ввода логина, текущего пароля, нового пароля, подтверждения нового пароля. Введите данные и нажмите кнопку "Выслать пароль". После этого будет предпринята попытка соединения с сервером MySql, который установлен на игровом сервере. Если попытка успешна, будет произведена сверка текущего пароля. Если пароль совпадает, на его место записывается новый. Причём парорль записывается в две таблицы. В основную - зашифрованный. И в служебную (которую создавали дополнительно). Если быть более точным, пароли не дописываются в таблицу, а обновляются в уже существующих строках таблиц.

Вы можете скачать файл с этим скриптом.