Ce site utilise des cookies pour améliorer uniquement votre expérience utilisateur.
Vous pouvez lire à tout moment comment nous utilisons les cookies sur le site.
Bonsoir ,
Lorsque je créer un utilisateur je recois bien le token etc... mais aucun mail j'ai essayer plusieurs choses mais rien ne change.
Voici mon code :
<?php
session_start();
include('db/connexionDB.php'); // Fichier PHP contenant la connexion � votre BDD
$token = bin2hex(random_bytes(12));
// S'il y a une session alors on ne retourne plus sur cette page
if (isset($_SESSION['id'])){
header('Location: index.php');
exit;
}
// Si la variable "$_Post" contient des informations alors on les traitres
if(!empty($_POST)){
extract($_POST);
$valid = true;
// On se place sur le bon formulaire gr�ce au "name" de la balise "input"
if (isset($_POST['inscription'])){
$nom = htmlentities(trim($nom)); // On r�cup�re le nom
$prenom = htmlentities(trim($prenom)); // on r�cup�re le pr�nom
$mail = htmlentities(strtolower(trim($mail))); // On r�cup�re le mail
$mdp = trim($mdp); // On r�cup�re le mot de passe
$confmdp = trim($confmdp); // On r�cup�re la confirmation du mot de passe
// V�rification du nom
if(empty($nom)){
$valid = false;
$er_nom = ("Le nom d' utilisateur ne peut pas �tre vide");
}
// V�rification du pr�nom
if(empty($prenom)){
$valid = false;
$er_prenom = ("Le prenom d' utilisateur ne peut pas �tre vide");
}
// V�rification du mail
if(empty($mail)){
$valid = false;
$er_mail = "Le mail ne peut pas �tre vide";
// On v�rifit que le mail est dans le bon format
}elseif(!preg_match("/^[a-z0-9\-_.]+@[a-z]+\.[a-z]{2,3}$/i", $mail)){
$valid = false;
$er_mail = "Le mail n'est pas valide";
}else{
// On v�rifit que le mail est disponible
$req_mail = $DB->query("SELECT mail FROM utilisateur WHERE mail = ?",
array($mail));
$req_mail = $req_mail->fetch();
if ($req_mail['mail'] <> ""){
$valid = false;
$er_mail = "Ce mail existe d�j�";
}
}
// V�rification du mot de passe
if(empty($mdp)) {
$valid = false;
$er_mdp = "Le mot de passe ne peut pas �tre vide";
}elseif($mdp != $confmdp){
$valid = false;
$er_mdp = "La confirmation du mot de passe ne correspond pas";
}
// Si toutes les conditions sont remplies alors on fait le traitement
if($valid){
$mdp = crypt($mdp, "$6$rounds=5000$macleapersonnaliseretagardersecret$");
$date_creation_compte = date('Y-m-d H:i:s');
// 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));
$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 <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://localhost/conf.php?id=' . $req['id'] . '&token=' . $token . '">Valider</a><p>';
mail($mail_to, 'Confirmation de votre compte', $contenu, $header);
header('Location: index.php');
exit;
}
}
}
?>
Cc @Zadrox,
La fonction mail de PHP ne fonctionne pas en local, à moins de faire des modifs relou dans les fichiers PHP...
Je serai toi j'utiliserai PhpMailer, il est plus puissant, et fonctionne très bien ! Suis ce tutoriel : voir le lien
Bon courage 😜