Решил от нечего делать написать по быстренькому восстановлялку. Запрсоы к БД замените если что. Кое что я могу не помнить, так что советую посмотреть внимательно код. У меня нет возможности сейчас его проверить 
| Цитата | <?php /* -------------------------------------------------- */ // Скрипт восстановления забытого пароля. // Автор: IZ@TOP. // Дата: 30.07.04 /* -------------------------------------------------- */
switch($_GET['RecoveryWizzard']) { case 'confirm': { $Res = mysql_query("select email from temp where key = '".$_GET['confirm']); if(!mysql_num_rows($Res)) { die('Такого ключа подтверждения не существует'); } list(, $mail) = mysql_fetch_array($Res, MYSQL_NUM); $PassLen = 8; // Длинна генерируемого пароля. $Words = "qQwWeErRtTyYuUiIoOpPaAsSdDfFgGhHjJkKlLzZxXcCvVbBnNmM_1234567890"; while($PassLen > 0) { $TmpPass[] = $Words[rand(0, strlen($Words) -1]; $PassLen--; } $Password = implode('', $TmpPass); mysql_query("update users set password = '".md5($Password)."' where email = '".$mail); mail('recover@example.com', $mail, 'Recovery Password', $Password); echo "Ваш новый паролль отправлен Вам на email"; break; } case 'prepare' { $Res = mysql_query("select email from users where name = ".addslashes($_POST['name'])." and email = ".addslashes($_POST['email'])); if(!mysql_num_rows($Res)) { die('Ошибка. Такого пользователя или email'a не существует.'); } $RandKey = md5(microtime()); mysql_query("insert into temp values('".$_POST['email']."', '".$RandKey."'"); @mail('recover@example.com', $_POST['email'], 'Recovery Password', 'http://example.com/recover.php?confirm='.$RandKey); echo "Вам на емайл отправлено письмо с ключем для подтверждения смены пароля."; break; } default : { ?> <form action="?RecoveryWizzard=prepare" method="POST"> <input type="text" value="Your name"><br /> <input type="text" value="Your email"><br /> <input type="submit" value="send"> </form> <?php } }
?> | |