Bonjour tout le monde,
j' essaie tant bien que mal à renvoyer un nouveau mot de passe via une adresse mail (en PHP), de ce fait j' ai crée une nouvelle colonne sur ma base de donnée ('n_mdp') pour que le nouveau mot de passe puisse s' ajouter à ma base de donnée.
Mais j' avoue que cela fait une semaine que je patauge parce qu' en fait rien ne marche.
j' ai donc créer un lien ''Mot de passe oublié", qui lorsque je clique dessus m' ouvre mon formulaire en popup, dont voici le code ci-contre :
Voici mon formulaire( une fenêtre popup qui s' ouvre)
Jusqu' ici tout va bien, , ensuite jme suis aider d' un bon tuto sur le net afin de créer une page en PHP qui puisse me renvoyer un nouveau mot de passe via une adresse mail, biensûr cette dernière enregistrée dans une BDD.
Voici mon code ci contre
// nécessite une nouvelle colonne nouveau_mdp à la table utilisateurs
Je ne sais pas ce qui cloche ??
KK1 peut il m' aider SVP !!
Modifié par poussmouss (10 Aug 2018 - 11:38)
j' essaie tant bien que mal à renvoyer un nouveau mot de passe via une adresse mail (en PHP), de ce fait j' ai crée une nouvelle colonne sur ma base de donnée ('n_mdp') pour que le nouveau mot de passe puisse s' ajouter à ma base de donnée.
Mais j' avoue que cela fait une semaine que je patauge parce qu' en fait rien ne marche.
j' ai donc créer un lien ''Mot de passe oublié", qui lorsque je clique dessus m' ouvre mon formulaire en popup, dont voici le code ci-contre :
Voici mon formulaire( une fenêtre popup qui s' ouvre)
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Mot de passe oublié</title>
</head>
<body>
<div>Mot de passe oublié</div>
<form method="post">
<?php
if (isset($er_mail)){
?>
<div><?= $er_mail ?></div>
<?php
}
?>
<input type="email" placeholder="Adresse mail" name="mail" value="<?php if(isset($mail)){ echo $mail; }?>" required>
<button type="submit" name="oublie">Envoyer</button>
</form>
</body>
</html>
Jusqu' ici tout va bien, , ensuite jme suis aider d' un bon tuto sur le net afin de créer une page en PHP qui puisse me renvoyer un nouveau mot de passe via une adresse mail, biensûr cette dernière enregistrée dans une BDD.
Voici mon code ci contre
// nécessite une nouvelle colonne nouveau_mdp à la table utilisateurs
<?php
session_start();
include('connexion.php');
include('FormulaireStagiaire.php');
if (isset($_SESSION['id'])){
header('Location: indexbis.php');
exit;
}
if(!empty($_POST)){
extract($_POST);
$valid = true;
if (isset($_POST['oublie'])){
$mail = htmlentities(strtolower(trim($mail))); // On récupère le mail afin d envoyer le mail pour la récupèration du mot de passe
//Si le mail est vide alors on ne traite pas
if(empty($mail)){
$valid = false;
$er_mail = "Il faut mettre un mail";
}
if($valid){
$verification_mail = $DB->query("SELECT nom, prenom, mail, mdp
FROM utilisateurs WHERE mail = ?",
array($mail));
$verification_mail = $verification_mail->fetch();
if(isset($verification_mail['mail'])){
if($verification_mail['n_mdp'] == 0){
// On génère un mot de passe à l'aide de la fonction RAND de PHP
$new_pass = rand();
// Le mieux serait de générer un nombre aléatoire entre 7 et 10 caractères (Lettres et chiffres)
$new_pass_crypt = crypt($new_pass, "VOTRE CLÉ UNIQUE DE CRYPTAGE DU MOT DE PASSE");
$objet = 'Nouveau mot de passe';
$to = $verification_mail['mail'];
//===== Création du header du mail.
$header = "From: NOM_DE_LA_PERSONNE <no-reply@test.com> \n";
$header .= "Reply-To: ".$to."\n";
$header .= "MIME-version: 1.0\n";
$header .= "Content-type: text/html; charset=utf-8\n";
$header .= "Content-Transfer-Encoding: 8bit";
//===== Contenu de votre message
$contenu = "<html>".
"<body>".
"<p style='text-align: center; font-size: 18px'><b>Bonjour Mr, Mme".$verification_mail['nom']."</b>,</p><br/>".
"<p style='text-align: justify'><i><b>Nouveau mot de passe : </b></i>".$new_pass."</p><br/>".
"</body>".
"</html>";
//===== Envoi du mail
mail($to, $objet, $contenu, $header);
$DB->insert("UPDATE utilisateurs SET mdp = ?, n_mdp = 1 WHERE mail = ?",
array($new_pass_crypt, $verification_mail['mail']));
}
}
header('Location: indexbis.php');
exit;
}
}
}
?>
Je ne sais pas ce qui cloche ??
KK1 peut il m' aider SVP !!
Modifié par poussmouss (10 Aug 2018 - 11:38)