Скрипт восстановления пароля

895
.
JohnCMS

CoolCMS-ке вроде бы легкая я когда-то оттуда воровал)

.
Jesk
JohnCMS

А тока там сразу новый пасс отправляет через

mail(); (+/-)

<?php 
// by Mike O. (mides), coolcms.org 
$title = 'Восстановление пароля'; 
require_once '../includes/sys.php'; 
require_once '../includes/header.php'; 

if ($u['id']) header('location: ../'); 

switch ($act) { 
    default:     
        tp('Восстановления пароля'); 
        echo '<div class="body">'; 
        echo '<form name="form" action="?act=do" method="post" name="form"> 
        Ваш логин:<br /><input name="username" type="text" maxlength="12" size="12" /><br /> 
        Ваш E-mail:<br /><input name="email" type="text" maxlength="50" size="12" /><br /> 
        Провер. код:<br /> 
        <img src="../images/code.php" alt="" /><br /> 
        <input name="code" maxlength="5" size="12" /><br /> 
        <input name="submit" type="submit" value="Продолжить" /></form>'; 
        nav('login.php'); 
    break; 

    case 'do': 
        if (empty($_POST['username']) or empty($_POST['email']) or empty($_POST['code'])) {
            error('Вы не заполнили поля.');
            nav('?'); 
            break; 
        } 
         
        $code = intval($_POST['code']); 
        if ($_SESSION['code'] != $code or empty($code)) {
            error('Вы ввели неверный проверочный код.');
            nav('?'); 
            break; 
        } 
         
        $username = check($_POST['username']);
        $email = check($_POST['email']); 
        $new_pass = generate(8); 
         
        $isset_u = mysql_result(mysql_query("SELECT COUNT(`id`) FROM `users` WHERE `username` = '$username' and `email` = '$email'"), 0);
        if ($isset_u == 0) { 
            error('Введенные данные неверны.');
            nav('?'); 
            break; 
        } 

        mysql_query("UPDATE `users` SET `password` = '".md5(md5($new_pass))."' WHERE `username` = '$username'");

        // sending e-mail 
        $email_a = 'robot@'.HOME; 
        $message = 'Уважаемый пользователь!
        Вы запросили смену пароля на сайте '.$config['copy'].'.
        Ваш новый пароль: '.$new_pass.' 
        Автологин: http://'.HOME.&#039;/a.php?l='.$username.'&p='.$new_pass.' 
        --- 
        С уважением, администрация '.$config['copy'];
         
        mail($email, '=?utf-8?B?'.base64_encode('Смена пароля на '.HOME).'?=', $message, "From: $email_a\r\nContent-type: text/plain; charset=utf-8;\r\nX-Mailer: PHP;"); 
         
        info('Новый пароль был сгенерирован и выслан на Ваш e-mail.'); 
        nav('login.php'); 
        session_destroy(); 

break; 

} 

require_once '../includes/tail.php'; 
?>
.
(\/)____o_O____(\/)

Kip-OK, примерная логика
все сокращено до нельзя

Прикрепленные файлы:
.
Менделеев
# Flash (03.01.2017 / 21:36)
Serghei, как будто ты потом сможешь ему помочь))
В тему про сергхей
Прикрепленные файлы:
.
Йытлеж Пок пик
# Koenig (04.01.2017 / 13:36)
Kip-OK, примерная логика
все сокращено до нельзя
я так понял, что там вводишь мыло, пароль сам генерируется и отсылается на мыло так?
.
КоханийВолодимир
# fanatos (04.01.2017 / 16:01)
В тему про сергхей
:рукалицо:
.
(\/)____o_O____(\/)

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

.
Йытлеж Пок пик

Koenig, Но если кто то узнает логин / мыло то сможет замучать человека новыми паролями

.
Кот Леопольд
# fanatos (04.01.2017 / 16:01)
В тему про сергхей
ах ах-ах помощьник еще тот
Всего: 19