Пишем систему пользователей сайта на PHP. Часть 4. Функция восстановления паролей
7 сентября 2008 | KalimdorВообщем полезная опция для пользовательской системы, ведь ни для кого не секрет, что юзер на сайте существо забывчивое
и зачастую свой пароль он не помнит. Именно поэтому функция восстановления пароля на сайте нужна. На этот раз код будет оформлен в виде функции. Где и в каком месте её применить, решать вам
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | <?php // Функция восстановления пароля, в качестве аргументов принимает почтовый ящик дескриптор соединения с базой данных, название сайта и мыло отправителя и возвращает true, если операция восстановления пароля прошла успешно, false в противном случае function restoration_password ($email, $dbdeskriptor, $site_name, $adm_mail) { // Проверим валидность мыла if(!preg_match("/^[dw-_.]+@[dw-.]+.[w]{2,4}/i",$email)) { mysql_close ($dbdeskriptor); echo "Некорректно введён e-mail адрес"; return false; } // Составим запрос к базе данных $query_select = "SELECT `login`,`pass` FROM `user` WHERE mail="$email""; // Проведём запрос к базе данных $ath = mysql_query ($query_select, $dbdeskriptor); // Проверим успешность запроса if (!$ath) { mysql_close ($dbdeskriptor); echo "Ошибка базы данных"; return false; } // Извлечём результаты запроса $result = mysql_fetch_assoc ($ath); // Проверим на NULL результат запроса if (isset ($result ['user'])) { mysql_close ($dbdeskriptor); include "Такого e-mail в базе нет!"; return false; } // Если пользователь существует, сгенерируем для него новый пароль, состоящий из 6 знаков $simvols = array ("0","1","2","3","4","5","6","7","8","9", "a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z", "A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"); for ($key = 0; $key < 6; $key++) { shuffle ($simvols); $string = $string.$simvols[1]; } // Найдём хеш пароля $pass = md5 ($string); // Составим запрос к базе данных $query_update = "UPDATE user SET pass = "$pass" WHERE mail="$email""; // Проведём запрос $ath = mysql_query ($query_update, $dbdeskriptor); // Проверим результат запроса if (!$ath) { mysql_close ($dbdeskriptor); echo "Ошибка базы данных"; return false; } // Вышлем письмо с логином и новым паролем пользователю $ath = mail ("$email", "Восстановление пароля на сайте {$site_name}", "Вы запросили восстановление логина и/или пароля на сайте {$site_name}. Ваш логин и новый пароль:n Логин: {$result['login']}n Пароль: {$string}", "From: amin <{$adm_mail}>"); // Проверим успешность отправки if (!$ath) { include "Ошибка при отправке письма"; return false; } echo "Пароль восстановлен"; return true; } ?> |
Ну собственно всё, ничего сложно в функции нет.
____________________________________________
Постовый.
Обзор блогосферы от Virtual-lab.
Рецепт заработка от Спрута.
А здесь можно выйграть iPhone
.
Похожие записи:
Метки: PHP, восстановление пароля, веб-мастеру, полезное, программированиеРубрика: Скрипты
11
11