Dans cet article nous allons développer un système qui permettra d'envoyer un mail à votre nouvel utilisateur avec une clé afin de confirmer son compte sur votre site.


Pour commencer il faudra créer 2 nouvelles colonnes dans votre table utilisateur :

  • token de type text
  • confirmation_token de type datetime


CREATE TABLE utilisateur (
 id int(255) unsigned NOT NULL AUTO_INCREMENT,
 nom varchar(50) DEFAULT NULL,
 prenom varchar(50) DEFAULT NULL,
 mail varchar(191) DEFAULT NULL,
 mdp text,
 date_creation_compte datetime DEFAULT NULL,
 token text,
 confirmation_token datetime DEFAULT NULL,
 PRIMARY KEY (id),
 UNIQUE KEY mail (mail)
)


Page inscription.php


Dans cette page nous allons ajouter une fonction pour générer une clé (votre token) et faire un envoi de mail contenant le lien afin de valider le compte.


Avant d'insérer les informations pour notre nouvel utilisateur nous allons commencer par générer notre token. Pour cela nous allons utiliser la fonction random_bytes et la fonction bin2hex afin de nous donner une clé.


// bin2hex(random_bytes($length))
$token = bin2hex(random_bytes(12));

// Exemples:
// 39e9289a5b8328ecc4286da11076748716c41ec7fb94839a689f7dac5cdf5ba8bdc9a9acdc95b95245f80a00

// On insert nos données dans la table utilisateur
$DB->insert("INSERT INTO utilisateur (nom, prenom, mail, mdp, date_creation_compte, token) VALUES 
    (?, ?, ?, ?, ?, ?)", 
    array($nom, $prenom, $mail, $mdp, $date_creation_compte, $token));


N'oubliez pas d'enregistrer votre clé dans votre base de données.


Ensuite nous allons passer à l'envoi du mail qui contiendra un lien qui permettra de valider le compte. Juste avant de faire cela nous allons rechercher l'identifiant unique de la personne que nous venons de créer afin d'envoyer un lien avec l'identifiant de la personne et le token.


$req = $DB->query("SELECT *
  FROM utilisateur
  WHERE mail = ?",
  array($mail));
  
$req = $req->fetch();

$mail_to = $req['mail']; 

//=====Création du header de l'e-mail.
$header = "From: no-reply@gmail.com\n";
$header .= "MIME-version: 1.0\n";
$header .= "Content-type: text/html; charset=utf-8\n";
$header .= "Content-Transfer-ncoding: 8bit";
//=======

//=====Ajout du message au format HTML          
$contenu = '<p>Bonjour ' . $req['nom'] . ',</p><br>
  	<p>Veuillez confirmer votre compte <a href="http://www.domaine.com/conf.php?id=' . $req['id'] . '&token=' . $token . '">Valider</a><p>';
        			
mail($mail_to, 'Confirmation de votre compte', $contenu, $header);


Maintenant que notre système d'envoi de mail pour valider le compte est opérationnel nous allons créer une nouvelle page que nous allons nommer conf.php et dans cette page nous allons valider le compte de l'utilisateur lorsque celui-ci cliquera sur le lien présent dans le mail qu'il aura reçu.


Page conf.php


Dans un premier temps nous allons récupérer les 2 informations dans l'URL du lien qui est dans le mail que l'utilisateur recevra.


$id = (int) $_GET['id'];
$token = (String) htmlentities($_GET['token']); 


Ensuite nous allons vérifier ces informations pour confirmer ou non-confirmer le compte.


if(!isset($id)){
	$valid = false;
	$err_mess = "Le lien est erroné";

}elseif(!isset($token)){
	$valid = false;
	$err_mess = "Le lien est erroné";
}

if($valid){
	$req = $DB->query("SELECT id 
		FROM utilisateur 
		WHERE id = ? AND token = ?"array($id, $token));
		
	$req = $req->fetch();

	if(!isset($req['id'])){
		$valid = false;
		$err_mess = "Le lien est erroné";
	}else{
		$DB->insert("UPDATE utilisateur SET token = NULL, confirmation_token = ? WHERE id = ?", 
	    	array(date('Y-m-d H:i:s'), $req['id']));

	    $info_mess = "Votre compte a bien été validé";
	}  
}


Maintenant nous avons un système de confirmation de compte par mail opérationnel !

+99999
Modifié le 05 juillet 2020
Publicité Sitedudev
Cette pub permet au site de vivre ...
Télécharger le code source
Publicité
Cette pub permet au site de vivre ...
Voir d'autres articles
2 393 vues
Accepter ou refuser une demande d'amis
Nous allons enfin terminer notre système d'amis en permettant à l'utilisateur d'accepter ou de refuser une ou plusieurs demande grâce à une liste contenant toutes les demandes que l'utilisateur...
Créer son site de rencontres
2 031 vues
Personnaliser ses conversations
Dans cette dernière vidéo nous allons personnaliser notre messagerie ! 😎Pour cela nous allons donner l’aspect des conversations comme une messagerie de smartphone type Apple ou Samsung.Nous...
Créer son site de rencontres
5 553 vues
Le langage HTML
Avant de commencer cet article nous allons commencer par un rappel.Rappel : Pour développer en HTML, il faut utiliser n'importe quel éditeur de texte et enregistrer le fichier au format .html afin...
Créer son site
2 290 vues
Explorer les fonctions de manipulation de couleur, de texte, etc.
Exploration des fonctions de manipulation en SASS1. Manipulation de couleurs :SASS propose un ensemble de fonctions intégrées pour manipuler les couleurs. Vous pouvez ajuster la luminosité, la...
Sass
4 064 vues
Comprendre le rôle de CSS dans la conception Web.
Le rôle de CSS dans la conception WebCSS, ou Cascading Style Sheets, est un langage de style utilisé pour définir la présentation visuelle des pages Web. Il agit comme une couche de style qui...
CSS
16 458 vues
Visiter un profil PHP
Pour visiter le profil d'un autre utilisateur il nous faudra récupérer son ID passer en argument dans l'URL par la méthode $_GET et afficher ses informations comme pour...
Créer son site
1 709 vues
Inline CSS : l'ajout de styles directement dans les balises HTML
Inline CSS : L'ajout de styles directement dans les balises HTMLL'Inline CSS est une méthode de stylisation où les styles sont appliqués directement à un élément HTML via l'attribut style. Cela...
CSS
1 069 vues
Utilisation de Fetch pour effectuer des requêtes HTTP
Utilisation de Fetch pour Effectuer des Requêtes HTTPLa méthode Fetch est une fonction native de JavaScript utilisée pour effectuer des requêtes HTTP vers des ressources distantes, telles que des...
JS
Publicité
Cette pub permet au site de vivre ...