Récupérer un mot de passe oublié en PHP 1-3
Sommaire
- 1- Objectifs
- 2- Présentation
- 3- Processus de mise en œuvre d'un système d'oublie de mot de passe
- 3.1- Formulaire d'inscription
- 3.2- Formulaire de connexion
- 3.3- Formulaire d'envoi d'email
- 3.4- Nouveau formulaire de mot de passe
- 4- Mise en œuvre
- 4.1- Créer une base de données
- 4.2- Se connecter à la base de données
- 4.3- Créer le formulaire d'inscription (HTML et Bootstrap)
- 4.4- HTML
- 4.5- PHP
- 4.6- Créer le formulaire d'authentification (HTML et Bootstrap)
- 4.7- HTML
- 4.8- PHP
- 4.8.1- Cours PHP
Récupérer un mot de passe oublié en PHP 1-3
-
Objectifs
- Être capable de créer un système d’authentification et de récupération de mot de passe
-
Présentation
- Le système de réinitialisation du mot de passe est très nécessaire pour les sites Web dotés d’une fonction d’enregistrement de l’utilisateur, car dans le cas où l’utilisateur aurait oublié son mot de passe et ne pouvait pas se connecter, ce système de réinitialisation du mot de passe aide à réinitialiser le mot de passe en envoyant un lien vers son adresse e-mail enregistrée.
- Dans ce tutoriel, je décris les étapes impliquées dans la récupération du mot de passe d’un utilisateur; nous allons également implémenter un tel système en utilisant PHP et une base de données MySQL dans ce tutoriel.
- Pour créer un système de réinitialisation de mot de passe, il suffit de quatre étapes:
- Créer un formulaire HTML pour le système de réinitialisation de mot de passe.
- Créez un fichier PHP pour envoyer le lien
- Créez un fichier PHP pour réinitialiser le mot de passe
- Créez un fichier PHP pour mettre à jour le nouveau mot de passe
-
Processus de mise en œuvre d’un système d’oublie de mot de passe
- L’ensemble du processus de mise en œuvre d’un tel système peut être décomposé en 4 étapes principales. Chaque étape est caractérisé par la création d’un formulaires qui doit être présenté à l’utilisateur pour la remplir:
-
Formulaire d’inscription
- Ce formulaire présente la première étape du système, il permette l’enregistrement d’un nouveau membre dans une base de données MySQL.
-
Formulaire de connexion
- Ce formulaire prend la combinaison du nom d’utilisateur et du mot de passe d’un utilisateur et les connecte s’ils sont enregistrés sur le système.
- Sur ce formulaire, nous fournissons un lien « Mot de passe oublié? » au cas où l’utilisateur aurait oublié son mot de passe et aurait besoin de le réinitialiser.
-
Formulaire d’envoi d’email
- Si l’utilisateur a oublié son mot de passe, il peut cliquer sur le bouton « Mot de passe oublié? » lien sur la page de connexion pour le réinitialiser.
- Cliquer sur ce lien les amènera à une autre page qui les invitera à entrer l’e-mail.
- Lorsque l’adresse e-mail qu’ils fournissent ne se trouve pas dans notre table d’utilisateurs dans la base de données, nous afficherons
- Un message d’erreur indiquant « Aucun utilisateur de ce type n’existe sur notre système« .
- Si par contre l’utilisateur existe, nous générerons un jeton unique (une chaîne aléatoire unique) et stockerons ce jeton avec cette adresse e-mail dans le mot de passe_resetstable dans la base de données.
- Un e-mail contenant ce jeton dans un lien est envoyé à l’adresse mail fournit.
- En cliquant sur le lien dans son e-mail (l’e-mail que nous leur avons envoyé), l’utilisateur est renvoyé vers notre site Web sur une page qui leur présente un autre formulaire.
-
Nouveau formulaire de mot de passe
- Une fois que l’utilisateur est de retour sur notre site Web, nous récupérerons le jeton provenant du lien et le stockerons dans une variable de session.
- Ensuite, nous leur présenterons un formulaire leur demandant de saisir un nouveau mot de passe pour leur compte sur notre site Web.
- Lorsque le nouveau mot de passe est soumis, nous interrogerons la table password_resets pour l’enregistrement contenant ce jeton qui vient juste du lien dans le courrier.
- Si le jeton se trouve dans la table password_resets , nous sommes convaincus que l’utilisateur est bien qui il est et il a cliqué sur le lien dans son courrier.
- À ce stade, nous récupérons l’adresse e-mail de l’ utilisateur dans password_resets (rappelez-vous que nous avons enregistré le jeton à côté de leur adresse e-mail) et utilisez cet e-mail pour récupérer l’utilisateur dans la table des utilisateurs et mettre à jour son mot de passe.
-
Mise en œuvre
-
Créer une base de données
- Créez une base de données appelée « motdepasse » et dans cette base de données, créer une table à savoir « users » avec les champs suivants:
-
Se connecter à la base de données
-
Créer le formulaire d’inscription (HTML et Bootstrap)
-
HTML
-
PHP
-
Créer le formulaire d’authentification (HTML et Bootstrap)
-
HTML
-
PHP
Champ | Description |
---|---|
id | Identifiant numérique unique (Autoincriment) . |
username | Le nom d’utilisateur. |
pwd | Le mot de passe haché et sécurisé. |
adresse-email | L’adresse courriel de l’utilisateur. |
date_demande_recuperation_pwd | Date à laquelle l’utilisateur a demandé à réinitialiser son mot de passe. |
pwd_recuperation_token | Token généré aléatoirement, utilisé pour réinitialiser le mot de passe. |
$host = 'localhost';
$dbname = 'motdepasse';
$user = 'root';
$passwd = '';
$db = new PDO("mysql:host=localhost;dbname=".$dbname, $user, $passwd);