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 053 vues
Mixins : Créer des mixins pour réutiliser des blocs de styles
Mixins en SASS : Créer et Utiliser1. Déclaration de mixins :En SASS, les mixins sont déclarés à l'aide du mot-clé @mixin, suivi du nom du mixin et des paramètres entre parenthèses. Les styles...
Sass
3 523 vues
Créer des listes ordonnées <ol> et non ordonnées <ul>
Créer des listes ordonnées avec <ol> et non ordonnées avec <ul>Les balises <ol> et <ul> sont utilisées pour créer respectivement des listes ordonnées et non ordonnées...
HTML
1 639 vues
Afficher plus de conversation
Dans cette avant-dernière vidéo sur la création d’une messagerie interne nous allons personnaliser rapidement la page pour afficher les conversations et nous allons également corriger /...
Créer son site de rencontres
1 046 vues
Comprendre le rôle de JavaScript dans le développement web
Le rôle de JavaScript dans le développement webJavaScript est un langage de programmation qui joue un rôle crucial dans le développement web moderne. Il est largement utilisé pour rendre les...
JS
858 vues
Utilisation des directives @if, @for, @each, @while pour un contrôle de flux avancé
Utilisation des directives pour un contrôle de flux avancé en SASS1. Directive @if :La directive @if permet d'exécuter un bloc de code conditionnellement en fonction d'une expression booléenne....
Sass
716 vues
Retour de valeurs avec return
En PHP, la fonction return est utilisée pour renvoyer une valeur depuis une fonction. Cela permet à une fonction d'effectuer des calculs ou des traitements sur des données et de renvoyer le...
PHP
2 679 vues
Modifier ses informations en PHP
Dans cette nouvelle vidéo nous allons apprendre à modifier vos informations !Lors de l’inscription il se peut que vous ayez fait une erreur. C'est pour cela que cette page sera importante pour...
Créer son site de rencontres
638 vues
Modification du contenu et des styles
Modification du Contenu et des Styles des Éléments HTML en JavaScriptLa modification du contenu et des styles des éléments HTML est une tâche courante en développement web. Cela permet de...
JS
Publicité
Cette pub permet au site de vivre ...