×
Закрытие
×

Дополнительные материалы бесплатно предоставляются только зарегистрированным пользователям.

Для скачивания исходных файлов необходимо авторизоваться под своим аккаунтом через соответствующую форму.

Для тех кто не зарегистрирован, можно это сделать на вкладке Регистрация.

  • Создаем сайт для работы в Интернете

    1. Причины создания пошаговой инструкции по разработке самописного сайта
    2. Тема создаваемого сайта
    3. В чем будет заключаться монетизация
    4. Функционал
    5. Этапы создания
    6. Текущее состояние создаваемого сайта

    Здравствуйте уважаемый посетитель!

    Наверное, многие задаются вопросом, как можно самому создать сайт для работы в Интернете или просто для реализации своих интеллектуальных способностей.

    Причем чтобы такой сайт был создан не в стандартном исполнении на основе какой-нибудь бесплатной СMS, а заточенный под себя, с возможностью обеспечить ему должную безопасность и реализовать все свои индивидуальные потребности.

    Данный сборник статей и предназначен для того, чтобы показать на реальном примере, как можно самому с нуля создать интернет-ресурс, который в последствии можно использовать в качестве инструмента для своей работы.

    При этом в материалах сборника приводится не только подробное описание каждого этапа создаваемого самописного сайта, но и бесплатно предоставляются все исходные коды с соответствующими таблицами базы данных. Что существенно упрощает использования предоставляемого шаблона сайта под свои конкретные задачи.

    Следует к этому добавить, что при желании, после получения необходимых знаний и навыков в вопросах сайтостроения, вполне возможно заняться и созданием сайтов на заказ. Тем более, что эта работа очень интересна и достаточно хорошо оплачиваемая. И что немаловажно, ее можно выполнять удалено, занимаясь в любое время не выходя из дома. Для этого нужно всего лишь одно условие - подключение к сети Интернет, что в наше время не является какой-либо проблемой.

    И надеюсь, что данный материал позволит многим желающим не только создать свой сайт для работы в сети Интернет, но и поможет овладеть необходимой компетенцией для занятия профессиональным веб-программированием.

Самописный сайт своими руками!

Текущее состояние создаваемого сайта

Здесь можно посмотреть текущее состояние самописного сайта, который создается для работы в Интернете в рамках цикла статей Как сделать сайт.

Где в дополнительных материалах можно бесплатно скачать исходные файлы сайта с таблицами MySQL.

Вы здесь: Главная → Сборник статей → Работа с почтой → Отправляем email для восстановления пароля


Автор: / Дата:

Отправка email для восстановления пароля

Отправляем email для восстановления пароля

Здравствуйте уважаемый посетитель!

В предыдущей статье мы рассмотрели отправку email для восстановления логина учетной записи зарегистрированного пользователя. А сегодня посмотрим, как с использованием почты восстановить пароль.

Следует отметить, что алгоритм восстановления логина и пароля во многом схож. Однако, помимо общих операций, присутствующих в обоих случаях, при восстановлении пароля требуется предусмотреть дополнительные мероприятия, необходимые для обеспечения более высокой степени защиты восстанавливаемых данных.

А о том, чем это достигается, мы здесь подробно и рассмотрим. Но прежде чем к этому приступить, желательно ознакомиться с предыдущей статьей, в которой подробно рассказывается об аналогичных действиях, которые мы будем использовать и в данном случае.

Содержание


  • Алгоритм восстановления пароля учетной записи пользователя
  • Формируем форму восстановления пароля
  • Создаем обработчик формы
  • Формируем страницу изменения пароля
  • Проверяем работу созданного механизма восстановления пароля
  • Исходные файлы сайта

Алгоритм восстановления пароля учетной записи пользователя


В предыдущей статье уже рассказывалось об алгоритме действий при восстановлении данных учетной записи пользователя. Сейчас сформулируем это в части, касающейся пароля, выделив пункты, которые дополнительно добавляются к ранее используемым при варианте с логином.

  1. Пользователь в предназначенную для восстановления пароля форму вводит свой адрес электронной почты, который ранее указал при регистрации.
  2. При отправке запроса в обработчике формы производится проверка наличия в базе данных введенного адреса. В зависимости от результата проверки дальнейшие действия происходят в следующем порядке:
    1. В случае, если такого адреса в базе данных нет, то об этом сообщается пользователю с предложением вновь ввести адрес и повторно отправить запрос.
    2. При нахождении адреса:
      1. Из базы данных извлекаются соответствующие адресу электронной почты имя и логин пользователя.
      2. Формируется одноразовый ключ доступа к восстановлению пароля.
      3. Сформированный одноразовый ключ доступа сохраняется в базе данных в записи, соответствующей данному пользователю.
      4. На указанный email отправляется письмо пользователю со ссылкой на страницу сайта для восстановления пароля (в ссылке в качестве GET-параметра включен одноразовый ключ доступа).
      5. При получении письма пользователь переходит по ссылке на страницу сайта, на которой в специальной форме меняет пароль на новый (изменение пароля возможно только при соответствующем ключе доступа и с правильно указанным пользователем логином).
      6. При изменении пароля происходит удаление ключа доступа, хранящегося в базы данных.
      7. В случае, если пользователь, или кто иной, попытается повторно изменить пароль по данной ссылке, то на странице сайта ему будет сообщено о несоответствии ключа доступа к изменению пароля и предложено вновь пройти процедуру его восстановления.

В данном случае после оправки пользователем запроса на восстановление пароля (пункт 1,2), при наличие в базе данных введенного адреса email (пункт 2,б), формируется одноразовый ключ (пункт 2,б,ii). Который сохраняется, как в базе данных (пункт 2,б,iii), так и вставляется в виде GET-параметра в ссылку почтового сообщения (пункт 2,б,iv).

Далее, в отличие от варианта восстановления логина, пользователю отправляется письмо не с самими данными, а со ссылкой на страницу сайта, на которой предоставляется возможность их восстановить (смена пароля на новый, пункт 2,б,v).

При этом, в целях безопасности пользователю дается право сделать это только один раз . Обусловлено это тем что после изменения пароля, ранее сохраненный в базы данных ключ (пункт 2,б,vi) удаляется, и в дальнейшем ссылка становится нерабочей (пункт 2,б,vii).

Таким образом алгоритм действий по восстановлению пароля мы разобрали, и теперь можно перейти к его реализации.

Формируем форму восстановления пароля


Форма для восстановления пароля предназначена точно для таких же целей, как и в предыдущем случае, а именно: для оправки пользователю электронного сообщения в соответствии введенным адресом email.

Поэтому и HTML-код ее будет полностью повторять ранее рассмотренный вариант. За исключением только адреса обработчика, указанного в атрибуте формы action.

  1. <div class="article">

  2. <h1>Восстановление пароля</h1>

  3. <hr>

  4. <div class="recovery-password">

  5. <p>Введите указанный при регистрации e-mail, на который будет выслано письмо, предназначенное для восстановления пароля.</p>

  6. <form name="recovery-password" action="/user/password/otpravka-email-dlya-vosstanovleniya-parolya.html" method="post">

  7. <div><input type="email" name="recovery-email" required></div>

  8. <div><input type="submit" name="recovery-button" value="Отправить запрос"></div>

  9. </form>

  10. </div>

  11. </div>

Рис.1 HTML-код формы восстановления пароля

Как видно, здесь указан адрес /user/password/otpravka-email-dlya-vosstanovleniya-parolya.html (поз. 6), в соответствии с которым мы следующим шагом будем создавать файл обработчика формы.

А что касается размещения формы, то, как и в предыдущем случае, ее код мы поместим в поле "content" таблицы "url" базы данных, предназначенном для размещения основного содержания страниц сайта. Обусловлено это тем, что в отсутствии PHP-кода нет необходимости использовать для этого файл.

Ниже показан скриншот записи таблицы "url", соответствующей странице "Восстановление пароля", с размещенным в области основного содержания HTML-кодом данной формы.

Размещение формы восстановления пароля в таблице БД

Рис.2 Размещение формы восстановления пароля в таблице БД

Создаем обработчик формы


Так как в данном случае обработка формы и отправка email аналогична восстановлению логина, то и код обработчика в большой степени будет повторять ранее рассмотренный вариант. За исключением только тех строк, в которых в функционал обработчика добавляются дополнительные действия, соответствующие пунктам с 2,б,ii по 2,б,iv алгоритма.

Ниже приведен код, в котором добавленные и измененные строки выделены более светлым фоном по отношению к ранее используемым фрагментам обработчика формы восстановления логина.

  1. <div class="article">

  2. <h1>Отправка email для восстановления пароля</h1>

  3. <hr>

  4. <div class="recovery-password">

  5. <?php

  6. //----Скрипт отправки почты для восстановления пароля----

  7. use PHPMailer\PHPMailer\PHPMailer; //Импорт классов PHPMailer в глобальное пространство имен. Они должны быть в верхней части скрипта, а не внутри функции

  8. use PHPMailer\PHPMailer\Exception;

  9. if (!empty($_POST["recovery-button"])) { //Если форма отправлена

  10. $email = $_POST["recovery-email"]; //Получение из формы адреса email

  11. $email = check_symbol($email, "E-mail", "1", "/^[A-Z0-9._%+-]+@([A-Z0-9-]+\.)+[A-Z]{2,6}\z/i"); //Вызов пользовательской функции проверки и обработки данных формы

  12. if (!empty($GLOBALS['alert'])) { //При некорректном вводе адреса email

  13. $GLOBALS['alert'] = 'Данные из формы не отправлены. Обнаружены следующие ошибки: \n'.$GLOBALS['alert'];

  14. include "alert.php"; //Вывод сообщения об ошибке в диалоговом окне браузера

  15. ?>

  16. <p>Введите повторно указанный при регистрации e-mail, на который будет выслано письмо, предназначенное для восстановления пароля.</p>

  17. <form name="recovery-password" action="" method="post">

  18. <div><input type="email" name="recovery-email" required></div>

  19. <div><input type="submit" name="recovery-button" value="Отправить запрос"></div>

  20. </form>

  21. <?php

  22. }

  23. else { //При успешной валидации адреса email

  24. $table = 'orders'; //Присвоение переменной $table имени таблицы, в которой будет происходить поиск требуемой записи

  25. $column = 'client-email';//Присвоение переменной $column имени поля, по значению которого будет производиться поиск

  26. $value = $email; //Присвоение переменной $value значения адреса email пользователя

  27. $data_bd = getLine($table, $column, $value); //Вызов функции вывода одиночной стоки по заданному условию

  28. if ($data_bd) { //Если запись с искомым адресом найдена

  29. $login = $data_bd['client-login']; //Извлечение логина пользователя

  30. $name = $data_bd['client-name']; //Извлечение имени пользователя

  31. $rand = mt_rand(); //Формирование случайного целого числа

  32. $column = 'rand'; //Присвоение переменной $column имени поля, в котором сохраняется случайное число

  33. $value = $rand; //Присвоение переменной $value значения случайного числа

  34. $column_1 = 'client-email'; //Присвоение переменной $column_1 имени поля заданного условия

  35. $value_1 = $email; //Присвоение переменной $value_1 значения заданного условия

  36. $data_bd = rihgtOneColumnOneСondition($table, $column, $value, $column_1, $value_1); //Вызов универсальной функции записи данных по заданному условию в одном поле (запись значения случайного числа $rand в поле 'rand')

  37. $code_email = urlencode($email); //Кодирование сроки, в которой все не цифробуквенные символы, кроме "-", "_" и "." заменяются знаком процента "%" с шестнадцатеричными числами

  38. $link = 'http://'.$_SERVER['SERVER_NAME'].'/user/password/izmenenie-parolya.html?mail='.$code_email.'&rand='.$rand; //Формирование ссылки с GET-параметрами адреса email (mail) и значением ключа доступа (rand)

  39. require 'PHPMailer/src/PHPMailer.php'; //Подключение библиотеки PHPMailer

  40. require 'PHPMailer/src/Exception.php';

  41. require 'PHPMailer/src/SMTP.php';

  42. $mail = new PHPMailer(); //Инициализация класса

  43. $from = 'admin@avtobezugona.ru'; //Адрес почты, с которой идет отправка письма

  44. $to = $email; //Адрес получателя

  45. $mail -> isSMTP(); //Применение протокола SMTP

  46. $mail -> Host = 'smtp.yandex.ru';//Адрес почтового сервера

  47. $mail -> SMTPAuth = true; //Включение режима авторизации

  48. $mail -> Username = 'admin@avtobezugona.ru'; //Логин от доменной почты, подключенной к стороннему почтовому сервису (в данном случае в Яндекс.Почта)

  49. $mail -> Password = '2MsDom78'; //Пароль от доменной почты

  50. $mail -> SMTPSecure = 'ssl'; //Протокол шифрования

  51. $mail -> Port = '465'; //Порт сервера SMTP

  52. $mail -> CharSet = 'UTF-8'; //Кодировка

  53. $mail -> setFrom($from, 'Авто без угона'); //Адрес и имя отправителя

  54. $mail -> addAddress($to, 'Авто без угона'); //Адрес и имя получателя

  55. $mail -> isHTML (true); //Установка формата электронной почты в HTML

  56. $mail -> Subject = 'Восстановление пароля'; //Тема письма (заголовок)

  57. $mail -> Body =

  58. "<html>

  59. <body>

  60. <p>Здравствуйте, $name!</p>

  61. <p>Вы запросили восстановление пароля от учетной записи на сайте \"Авто без угона\".</p>

  62. <p>Для смены пароля, пожалуйста, перейдите по ссылке: .$link.</p>

  63. <p>Если Вы не запрашивали восстановление пароля, и это письмо попало по ошибке, просто не реагируйте на него или удалите.</p>

  64. <p>Письмо отправлено автоматически сервисом рассылки <a href=\"avtobezugona.ru/user/password.html\" target=\"_blank\">Авто без угона</a></p>

  65. </body>

  66. </html>"; //Содержание письма

  67. $mail -> AltBody =

  68. "Здравствуйте, $name!

  69. Вы запросили восстановление пароля от учетной записи на сайте \"Авто без угона\".

  70. Для смены пароля, пожалуйста, перейдите по ссылке: $link.

  71. Если Вы не запрашивали восстановление пароля, и это письмо попало по ошибке, просто не реагируйте на него или удалите.

  72. Письмо отправлено автоматически сервисом рассылки \"https://avtobezugona.ru\""; //Альтернативный текст в случае, если почтовый клиент не поддерживает формат HTML

  73. $mail -> SMTPDebug = 0; //Включение отладки SMTP: 0 - выкл (для штатного использования), 1 = сообщения клиента, 2 - сообщения клиента и сервера

  74. if ($mail -> send()) { //Если письмо отправлено

  75. ?>

  76. <p>Письмо для восстановления пароля отправлено на указанный e-mail.</p>

  77. <?php

  78. }

  79. else { //Если при отправке почты возникли проблемы

  80. ?>

  81. <p><span>Ошибка, письмо не может быть отправлено: <?php print($mail -> ErrorInfo);?>.</span></p>

  82. <p>Введите повторно указанный при регистрации e-mail, на который будет выслано письмо, предназначенное для восстановления пароля.</p>

  83. <p>В случае, если ошибка повторится, пожалуйста, обратитесь к администратору сайта через форму <a href="/kontakty.html">Обратной связи</a>.</p>

  84. <form name="recovery-password" action="" method="post">

  85. <div><input type="email" name="recovery-email" required></div>

  86. <div><input type="submit" name="recovery-button" value="Отправить запрос"></div>

  87. </form>

  88. <?php

  89. }

  90. }

  91. else { //Если запись с искомым адресом не найдена

  92. ?>

  93. <p><span>Ошибка при отправке сообщения! Такой e-mail в базе данных отсутствует.</span></p>

  94. <p>Введите повторно указанный при регистрации e-mail, на который будет выслано письмо, предназначенное для восстановления пароля.</p>

  95. <p>В случае, если e-mail не может быть найден в базе данных, пожалуйста, обратитесь к администратору сайта через форму <a href="/kontakty.html">Обратной связи</a>, либо вновь зарегистрируйтесь в разделе <a href="/poluchit-skidku.html">Получить скидку</a>.</p>

  96. <form name="recovery-password" action="" method="post">

  97. <div><input type="email" name="recovery-email" required></div>

  98. <div><input type="submit" name="recovery-button" value="Отправить запрос"></div>

  99. </form>

  100. <?php

  101. }

  102. }

  103. }

  104. ?>

  105. </div>

  106. </div>

Рис.3 Обработчик формы восстановления пароля

Как видно, здесь используются аналогичный код, который применялся и для восстановления логина. И каких-либо дополнительных пояснений, кроме имеющихся к нему комментарий, очевидно, не требуется. А вот что касается вновь добавленных строк, то можно остановиться на нескольких моментах.

Так, одноразовый ключ формируется с помощью функции mt_rand() (поз.31), который в дальнейшем:

  • с использованием универсальной пользовательской функции rihgtOneColumnOneСondition($table, $column, $value, $column_1, $value_1) сохраняется в базе данных в поле rand таблицы orders (поз.36);
  • в качестве GET-параметра rand (поз.38) вставляется в ссылку $link, имеющую для данного домена следующий вид: http://avtobezugona.ru/user/password/izmenenie-parolya.html?mail=адрес почты?rand=одноразовый ключ.

При этом следует отметить применение функции urlencode() (поз.37) для кодирования строки с адресом email, в которой все не цифробуквенные символы, кроме "-", "_" и "." заменяются знаком процента "%" в паре с шестнадцатеричными числами. Делается это для того, чтобы исключить применение в ссылке не предназначенных для использования в ней символов.

Таким образом эти дополнения позволяют отправить пользователю письмо с текстом, в котором будет содержаться ссылка на восстановление пароля (поз.60÷64). Для альтернативного текста, это, соответственно, строки с 68 по 72.

Что касается места размещения кода обработчика, то, как и при восстановлении логина, для этого используется файл, соответствующий адресу, указанному в атрибуте формы action (рис.2, поз.6). В данном случае путь к файлу otpravka-email-dlya-vosstanovleniya-parolya.php будет иметь следующий вид: /articles/user/password/otpravka-email-dlya-vosstanovleniya-parolya.php.

А почему так, можно узнать вернувшись на предыдущую статью и посмотрев, как там аналогичным образом формировалась страница обработчиком формы восстановления логина.

В итоге обработчик формы мы получили, и теперь можно перейти к следующему шагу создания механизма восстановления пароля.

Формируем страницу изменения пароля


Сейчас сформируем страницу, на которой пользователь будет восстанавливать пароль (изменять на новый). В связи с чем назовем эту страницу "Изменение пароля". Для этого в первую очередь следует создать новую запись в таблице "url" базы данных, как показано на скриншоте.

Создание новой страницы Изменение пароля

Рис.5 Создание новой страницы "Изменение пароля"

Где согласно адресу, указанному в ссылке письма http://avtobezugona.ru/user/password/izmenenie-parolya.html?mail=адрес почты?rand=одноразовый ключ, поле section имеет значение user, поле rubric - password, а page - izmenenie-parolya. Что соответствует третьему уровню вложенности страницы.

А затем создадим файл, в котором будет находиться основное ее содержание. Обусловлено это тем, что здесь предусматривается использование PHP-кода. Отчего размещать такой код следует в файле, а не базе данных.

Учитывая то, что все директории, относящиеся к основному содержанию страниц находятся в каталоге articles, то путь к этому файлу должен принять следующий вид: /articles/user/password/izmenenie-parolya.php.

Таким образом созданный файл izmenenie-parolya.php будет находиться в той же папке, где был ранее размещен файл обработчика формы, а именно: в папке password каталога user, которые являются содержимым общего каталога основного содержания страниц articles, как показано на следующем скриншоте.

Папка password с файлами обработчика формы и контента страницы Изменение пароля

Рис.6 Папка password с файлами обработчика формы и контента страницы "Изменение пароля"

После того, как определились с местом размещения основного содержания страницы, можно заняться и формированием его кода.

Напомним, что данная страница должна обеспечить выполнение действий, соответствующие пунктам с 2,б,v по 2,б,vii рассмотренного выше алгоритма. В связи с чем ее функционал можно разделить на две составные части.

Первая - это блок формирования области основного содержания при переходе по ссылке из почтового сообщения. Который, при соответствии одноразового ключа доступа, полученного из ссылки, значению, извлеченному из базы данных, должен будет отображать на странице форму восстановления (изменения) пароля.

В противном случае на странице вместо формы должно быть показано сообщение о несоответствии ключа доступа с предложением повторно пройти процедуру восстановления пароля.

Вторую часть, по сути, представляет сам обработчик формы, полученной в первом фрагменте кода. Этим обработчиком после успешной валидации введенных данных должны быть внесены в базе данных изменения пароля учетной записи пользователя, а также выполнено обнуление (сброс) в соответствующем поле одноразового ключа доступа.

Исходя их этого можно составить следующий код.

otpravka-email-dlya-vosstanovleniya-parolya_1

Рис.7 Код основного содержания страницы "Изменение пароля"

В данном коде та часть, которая обеспечивает формирование области основного содержания при переходе по ссылке из почтового сообщения, расположена в строках с 6 по 65. Порядок работы этого функционала можно описать следующими действиями.

В начале из адресной строки требуется получить значения GET-параметров: "mail" с адресом email пользователя и "rand" с одноразовым ключом доступа. Так как в нашем сайте применяется ЧПУ, то получить их через ассоциативный массив $_GET[] не удастся. Поэтому мы воспользуемся другим способом, используя для этого две PHP-функции.

Сначала, применив parse_url(), предназначенную для разбора URL на компоненты, извлечем из URL-адреса строку запроса с GET-параметрами (поз.9). А затем с помощью функции parse_str() после разбора этой строки одним действием сразу получим соответствующие переменные массива $get (поз.10) с заданными значениями GET-параметров $get['mail'] и $get['rand'].

Для того, чтобы был понятен механизм этих преобразований, в код добавлена дополнительная строка (поз.11), которая при раскомментировании может вывести на страницу значения результатов по каждому шагу.

Ниже для примера показан скриншот созданной страницы "Изменение пароля" с раскомментированной строкой вывода результатов преобразований при получении значений GET-параметров.

Получение значений GET-параметров

Рис.8 Получение значений GET-параметров

А далее в зависимости от полученных значений GET-параметров и данных, находящихся в базе данных возможны следующие варианты:

  • При нахождении по адресу email в базе данных существующей записи и совпадении ключа доступа - вывод на страницу формы изменения пароля (поз.20÷49).
  • При не нахождении по адресу email существующей записи - вывод сообщения отсутствии пользователя с таким email (поз.61÷62).
  • При не соответствии одноразового ключа доступа - вывод сообщения о неверном ключе (поз.54÷55).

Что касается обработчика формы изменения пароля, размещенного в строках с 66 по 205, то в нем используются типовые операции, которые мы не раз уже применяли в других случаях при обработке форм.

Здесь после валидации данных нового пароля (поз.68÷72) сначала проверяется соответствие введенного логина. А затем, в случае, если данные о логине, полученные из базы данных и из формы совпадают (поз.114), то в поле password-hash таблицы orders записывается хеш вновь созданного пароля, а также происходит сброс (обнуление) ключа доступа в поле rand (поз.125).

Если же по каким-либо причинам при записи данных произойдет ошибка, то об этом будет сообщено пользователю с предложением повторно выполнить запрос на восстановление пароля. Либо обратиться к администратору сайта (поз.128÷159).

На этом формирование всех элементов механизма восстановления пароля мы закончили. Осталось только практически проверить, что у нас из всего этого получилось.

Проверяем работу созданного механизма восстановления пароля


Проверку созданного функционала выполним по шагам, максимально используя возможные варианты событий при проведении тестов, а именно:

  • Проверка отправки письма пользователю при неправильно введенном адресе email.
  • Проверка отправки письма пользователю при вводе существующего email.
  • Проверка получения письма со ссылкой на восстановление пароля.
  • Переход по ссылке на страницу восстановления (изменения) пароля.
  • Проверка попытки изменения пароля при неправильном вводе логина.
  • Проверка изменения пароля при корректном вводе данных в форму.
  • Проверка повторной попытки восстановление пароля.

Итак, перейдем в панели авторизации по ссылке "Забыли пароль?" и начнем.

1. Проверка отправки письма пользователю при неправильно введенном адресе email.

Ввод несуществующего адреса email

Рис.9 Ввод несуществующего адреса email

Результат отправки формы с несуществующим адресом email

Рис.10 Результат отправки формы с несуществующим адресом email

2. Проверка отправки письма пользователю при вводе существующего email.

Повторный ввод существующего адреса email

Рис.11 Повторный ввод существующего адреса email

Результат отправки формы с существующим адресом email

Рис.12 Результат отправки формы с существующим адресом email

3. Проверка получения письма со ссылкой на восстановление пароля.

Проверка получения письма со ссылкой на восстановление пароля

Рис.13 Проверка получения письма со ссылкой на восстановление пароля.

4. Переход по ссылке на страницу восстановления (изменения) пароля.

Страница сайта изменения пароля

Рис.14 Страница сайта изменения пароля.

5. Проверка попытки изменения пароля при неправильном вводе логина.

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

Рис.15 Попытка изменения пароля при неправильном вводе логина.

Результат изменения пароля при неправильном вводе логина

Рис.16 Результат изменения пароля при неправильном вводе логина.

6. Проверка изменения пароля при корректном вводе данных в форму.

Повторный ввод корректных данных в форму изменения пароля

Рис.15 Повторный ввод корректных данных в форму изменения пароля.

Результат изменения пароля при корректном вводе данных

Рис.16 Результат изменения пароля при корректном вводе данных.

7. Проверка повторной попытки восстановление пароля.

Результат повторной попытки восстановление пароля

Рис.17 Результат повторной попытки восстановление пароля.

Как видно, проведенные тесты показали, что полученный функционал полностью соответствует алгоритму, который был ранее определен.

И таким образом можно считать, что и вопрос восстановления пароля мы закрыли.

Исходные файлы сайта


Знак папкиИсходные файлы сайта с обновлениями, которые были сделаны в данной статье, можно скачать из прилагаемых дополнительных материалов:

  • Файлы каталога www
  • Таблицы базы данных MySQL

Дополнительные материалы бесплатно предоставляются только зарегистрированным пользователям.

Для скачивания исходных файлов необходимо авторизоваться под своим аккаунтом через соответствующую форму.

Для тех кто не зарегистрирован, можно это сделать на вкладке Регистрация.

С уважением, Николай Гришин


Комментарии


Если у Вас возникли вопросы, или есть какие-либо пожелания по представлению материала, либо заметили какие-нибудь ошибки, а быть может просто хотите выразить свое мнение, пожалуйста, оставьте свои комментарии. Такая обратная связь очень важна для возможности учета мнения посетителей.

Буду Вам за это очень признателен!

comments powered by HyperComments