Забравена парола - как?

iCreatives

Registered
Как мога да направя опция "забравена парола" след като паролите се криптира в md5. И как ще стане тя да се изпраща на посочения mail при регистрация?
Мерси! :)
 
Те затова някои пишат, че паролата се криптира и не могат да я възстановят, а пращат нова. Просто правиш 1 скрипт, където при въвеждане на имейл и потребителско име (примерно) да изпраща на посочения имейл нова парола и записа за този потребител да се обновява.
 
Изпращай нова парола произволно генерирана и след като влезне ще може да си е смени.
PHP:
        $newpass= rand(10000,99999);
        $md5 = md5($newpass);
        $do = $email;
        $tema = "Вашата нова парола";
        $site_mail = 'asdaasd@domain.com';
        $sadarjanie = "Здравей $name
        Tози e-mail Ви бе изпратен по заявка за забравена парола.
        Вашата нова парола е: $newpass
        Може да е смените след като влезите в акаунта си.
        
        $headers='From: ' .$site_mail . "\r\n" .
                 'Reply-To: '.$site_mail . "\r\n".
                 "Content-Type: text/plain;charset=UTF-8\r\n".
                 "Content-Transfer-Encoding: 8bit\r\n";

        mysql_query("UPDATE users SET password='$md5' WHERE username='$name' AND email='$email' ") or die (mysql_error());
        mail($do,$tema,$sadarjanie,$headers);
 
NewGuy каза:
Не може освен ако не записваш паролата декриптирана.
Не това е решението!

Просто със скрипт създаваш нова като преди да я криптираш я пращаш на потребителя и после криптирана я записваш в bd, то много зависи как точно си го написал де.
 
Обаче преди да генерираш новата парола прати имейл с който потребителя да потвърди,че е неговия акаунт да не смени паролата на друг потребител :D
 
А как ще стане с проверка преди изпращане дали е написъл правилен user и mail?

2SHAE каза:
Обаче преди да генерираш новата парола прати имейл с който потребителя да потвърди,че е неговия акаунт да не смени паролата на друг потребител :D
Е тя паролата ще се прати на този майл, който е записан при регистрация. ;)
 
PHP:
    $name = htmlspecialchars(addslashes($_POST['username']));
    $email = htmlspecialchars(addslashes($_POST['email']));
    $q= mysql_query("SELECT * FROM users WHERE email='$email' AND username='$name' ") or die (mysql_error());

    if(mysql_num_rows($q)<1)
    {
       echo "Няма такова потребителско име и мейл в нашата база данни ";
    }
    else
    {
         кода който ти дадох по-горе.
    }
 
iCreatives каза:
2SHAE каза:
Обаче преди да генерираш новата парола прати имейл с който потребителя да потвърди,че е неговия акаунт да не смени паролата на друг потребител :D
Е тя паролата ще се прати на този майл, който е записан при регистрация. ;)

И я си представи, че този email го е ползвал еднократно, колкото да се регистрира? След това ще трябва да прави и самия собственик "Забравена парола?", за това е добре, да се потвърждава от email-a и след това да се праща паролата. ;)
 
relax15pyt каза:
И я си представи, че този email го е ползвал еднократно, колкото да се регистрира? След това ще трябва да прави и самия собственик "Забравена парола?", за това е добре, да се потвърждава от email-a и след това да се праща паролата. ;)

Колега, не че не може просто да се добави едно поле в БД с юзърите за активиране на новата парола, но лично аз харесвам при регистрация да има някакъв код (примерно 5-6-цифрен) или таен въпрос (лесен таен въпрос, например родно място, бащино име на майката и т.н.) - много по-лесно е при забравена парола. :) Добре ще е авторът на темата да помисли и за забравено потребителско име, където да се заявява само с e-mail-a, защото някои потребители (като мен :P) обичат да си запазват потребителското име и парола за години напред в браузъра и се случва (не често, но се случва).
Поздрави!
 
baceto90 каза:
PHP:
    $name = htmlspecialchars(addslashes($_POST['username']));
    $email = htmlspecialchars(addslashes($_POST['email']));
    $q= mysql_query("SELECT * FROM users WHERE email='$email' AND username='$name' ") or die (mysql_error());

    if(mysql_num_rows($q)<1)
    {
       echo "Няма такова потребителско име и мейл в нашата база данни ";
    }
    else
    {
         кода който ти дадох по-горе.
    }
Здравей, правя всичко както си показал в кодовете, но винаги ми излиза
Няма такова потребителско име и мейл в нашата база данни каде може да е проблема?
 
cakky каза:
baceto90 каза:
PHP:
    $name = htmlspecialchars(addslashes($_POST['username']));
    $email = htmlspecialchars(addslashes($_POST['email']));
    $q= mysql_query("SELECT * FROM users WHERE email='$email' AND username='$name' ") or die (mysql_error());

    if(mysql_num_rows($q)<1)
    {
       echo "Няма такова потребителско име и мейл в нашата база данни ";
    }
    else
    {
         кода който ти дадох по-горе.
    }
Здравей, правя всичко както си показал в кодовете, но винаги ми излиза
Няма такова потребителско име и мейл в нашата база данни каде може да е проблема?

имаш ли smtp сървър?
 
Провери си полетата на формата дали са същите който съм дал на $_POST също и полетата в база данни.
 

Back
Горе