Recherche pour un de bonnes options pour envoyer aux utilisateurs de réinitialiser le mot de passe e-mails

Je veux envoyer des mails aux utilisateurs lors de l'oublient leurs mots de passe qui invite à réinitialiser leur mot de passe. Je sais que c'est discutable et a été la recherche de quelques bonnes options/suggestions/méthodes/articles à choisir.

Je suis en invitant les utilisateurs à cliquer sur "mot de passe oublié" lien avec un simple script PHP partie:

$Email = $_POST['email'];
$success = false;
$formError = false;

if(isset($_POST['sub_forgot_pw'])) {

    if(empty($_POST['email'])) {
        $formError = "true";
        $error = "Please enter your e-mail address.";
    }else{
        $to = $Email;
        $subject = "Password Help";
        $message = "To reset your password, please <a href='http://www.blahblahblah.org'>Click here</a><br /><br />Do LIFE,<br /> The Team";
        $from = "CysticLife <[email protected]>";
        $headers  = 'MIME-Version: 1.0' . "\n";
        $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\n";
        $headers .= "From: $from";
        if(mail($to, $subject, $message, $headers));{
            $success = "true";
        }


    }

}
À mon avis vous ne devez pas stocker les mots de passe et l'utilisateur ne devrait pas avoir à créer un autre compte pour utiliser votre service. J'ai créé cette simple openid helper library(utilise LightOpenID et openid-sélecteur) que vous pouvez utiliser si vous le souhaitez à la place? => github.com/alfredwesterveld/php-openid
Ou vous pouvez utiliser solution, c'est du C#, mais doit s'adapter à vos besoins.
Juste une note de côté. Cette requête SELECT * FROM Utilisateurs OÙ Status = "active" semble mal pour moi. Il manque au moins une condition. Il doit être quelque chose comme SELECT * FROM Utilisateurs OÙ Status = "active" ET email = '$email"
Ceux qui sont vraiment cool, cependant, j'ai environ 3500 membres sur mon site. Serait juste à comprendre une transition en douceur.
SELECT * FROM Users WHERE status = 'active' reviendra toujours au moins une ligne jusqu'à ce qu'il y a au moins un utilisateur actif. $Email = $result['Email']; est l'e-mail de la valeur de la première ligne retournées par la requête, donc je ne peux pas comprendre comment il fonctionne, mais je suis content que cela fonctionne pour vous! 🙂

OriginalL'auteur LightningWrist | 2011-01-31