Bonjour, ça fait seulement quelques semaines que je débutent en PHP, donc je reviens vous demander un peu d'aide SVP.
En gros, dans un admin (petit CMS) que je suis en train de faire, il y a une rubrique utilisateur: avec possibilité d'ajouter de nouveaux utilisateurs (avec sha1 pour crypter mot de passe), et que les utilisateurs puissent modifier leurs mots de passes, pseudo, mail…
_Pour se connecter à l'admin (dans la page login.php), l'utilisateur doit entrer son pseudo avec son mot de passe. Je souhaiterai que si l'utilisateur oubli son mot de passe, qu'il puisse en entrant son adresse mail (adresse mail valide qui est dans la BDD) -> récupérer un nouveau mot de passe (qu'il pourra modifier par la suite dans l'admin si il le souhaite).
_Est-ce possible de m'expliquer le principe SVP? car dans Google je n'ai pas trouvé grand chose, et je ne voit vraiment pas le principe de comment je peut lui envoyer automatiquement un nouveau mot de passe dans son adresse mail qu'il pourra ensuite s'en servir pour se connecter.
Voici mon code actuelle (où j'ai encore beaucoup de boulot je pense):
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 | if(!empty($_POST['submit'])) { $mail = htmlspecialchars(addslashes($_POST['mail'])); if(!empty($mail)) { $db = Connexion(); // conexion à bdd $requete = $db->prepare("SELECT * FROM utilisateurs WHERE mail = :mail LIMIT 1"); $requete->execute(array('mail'=>$mail)); if ($requete->fetchColumn() != 0) { // si mail existe dans BDD $info_loginIDp = '<span class="vert bold">Adresse mail OK</span>'; $mail = 'admin@admin.admin'; $destinataire = 'destinataire@live.fr'; $sujet = 'ID perdus ?'; $entete = 'From: '.$mail.''."\r\n"; $entete .= 'Content-Type: text/html; charset="utf-8"'."\n"; // ".=" pour continuer la ligne du dessus. "\n" : Pour retour à la ligne $entete .= 'Content-Transfer-Encoding: 8bit'; $message = 'Vous avez demandé a réinitialiser vos identifiants, voici un nouveaux mot de passe :...'; if(mail($destinataire, $sujet, $message, $entete)) { // si mail vaut true (si mail a été envoyé) $info_loginIDp = '<span class="vert bold">Un message vous a été envoyé</span>'; } else { $erreur_loginIDp = '<span class="rouge bold">Une erreur est survenue</span>'; } } else { $erreur_loginIDp = '<span class="rouge bold">Adresse mail incorect !</span>'; } $requete->closeCursor(); } else { $erreur_loginIDp = '<span class="rouge bold">Veuillez remplit le champs</span>'; } } |
Merci beaucoup