Code : Tout sélectionner
<?php
session_start();
try
{
$bdd = new PDO ('mysql:host=localhost;dbname=bts_sn', 'project', 'project');
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
echo 'Échec lors de la connexion : ' . $e->getMessage();
}
if(!empty($_POST)){
extract($_POST);
$valid = true;
if (isset($_POST['oublie'])){
$adresseelectronique = htmlentities(strtolower(trim($_POST['adresseelectronique']))); // 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($valid)
{
$verification_adresseelectronique = $bdd -> prepare('SELECT * FROM Cyclistes WHERE adresseelectronique = ? AND validation ="1"');
$verification_adresseelectronique -> execute (array($adresseelectronique));
$verification_adresseelectronique = $verification_adresseelectronique->fetch();
if(isset($verification_adresseelectronique['adresseelectronique']))
{
if($verification_adresseelectronique['n_mdp'] == 0)
{
// On génère un mot de passe à l'aide de la fonction RAND de PHP
$new_pass = rand(7,10);
// Le mieux serait de générer un nombre aléatoire entre 7 et 10 caractères (Lettres et chiffres)
$new_pass_sha1 = sha1 ($new_pass, "$6$rounds=5000$macleapersonnaliseretagardersecret$");
// $new_pass_crypt = crypt($new_pass, "VOTRE CLÉ UNIQUE DE CRYPTAGE DU MOT DE PASSE");
$objet = 'Nouveau mot de passe';
$to = $verification_adresseelectronique['adresseelectronique'];
//===== Création du header du mail.
$header = "From: [email protected] <[email protected]> \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_adresseelectronique['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);
$inclusion_bdd = $bdd->prepare('UPDATE Cyclistes SET motdepasseweb = ?, n_mdp = 1 WHERE adresseelectronique = ? AND validation ="1"');
$inclusion_bdd -> execute(array ($new_pass_sha1, $verification_adresseelectronique['adresseelectronique']));
}
}
//header('Location: index.php');
exit;
}
}
}
?>
<!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_adresseelectronique)){
?>
<div><?= $er_adresseelectronique ?></div>
<?php
}
?>
<input type="email" placeholder="Adresse mail" name="adresseelectronique" value="<?php if(isset($adresseelectronique)){ echo $adresseelectronique; }?>" required>
<button type="submit" name="oublie">Envoyer</button>
</form>
</body>
</html>