problème envoi mail
Posté : 15 févr. 2022, 01:14
voila le script mais l'email n'arrive jamais.
<?php
session_start();
require_once 'config.php';
$msg = '';
if (!empty($_POST)) { // Si le formulaire a été soumis
if (!empty($_POST['mail'])) { // Si le formulaire est correctement rempli
// On fait une requête pour savoir si l'adresse e-mail est associé à un compte
$pdostat = $bdd->prepare('SELECT COUNT(*) AS nb FROM membres WHERE mail = ?');
$pdostat->bindValue(1, $_POST['mail']);
$pdostat->execute();
$row = $pdostat->fetch(PDO::FETCH_ASSOC);
if (!empty($row) && $row['nb'] > 0) { // Si l'adresse courriel est associé à un compte
// On génère notre token
$string = implode('', array_merge(range('A','Z'), range('a','z'), range('0','9')));
$token = substr(str_shuffle($string), 0, 20);
// On insère la date et le token dans la DB
$pdostat = $bdd->prepare('UPDATE membres SET password_recov_asked_date = NOW(), password_recovery_token = ? WHERE mail = ?');
$pdostat->bindvalue('1',$token ,PDO::PARAM_INT);
$pdostat->bindvalue('2',$mail ,PDO::PARAM_STR);
$pdostat->execute();
$membreSession = $pdostat->fetch();
// On prépare l'envoie du courriel
$link = 'https://www.farwest1850.eu/reinit_password.php?token='.$token;
$to = $_POST['mail'];
$subject = 'Réinitialisation du mot de passe';
$message = '<h1>Réinitialisation de votre mot de passe</h1><p>Pour réinitialiser votre mot de passe, veuillez suivre ce lien : <a href="'.$link.'">'.$link.'</a></p>';
// On défini les entêtes requis
$header = [];
$headers[] = 'MIME-Version: 1.0';
$headers[] = 'Content-type: text/html; charset=iso-8859-1';
$headers[] = 'To: '.$to.' <'.$to.'>';
$headers[] = 'farwest1850.eu<[email protected].>';
// On envoie le courriel
mail($to, $subject, $message, implode("\r\n", $headers));
$msg = '<div style="color: green;">Un courriel a été envoyé. Veuillez vérifier votre boîte aux lettres de messagerie.</div>';
} else { // Si ca n'est pas associé à un compte
$msg = '<div style="color: red;">Cette adresse courriel n\'a pas été trouvée dans la base de données.</div>';
}
} else { // Si le formulaire n'est pas correctement rempli
$msg = '<div style="color: red;">Veuillez spécifier une adresse courriel valide.</div>';
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>mot de passe oublié</title>
<style type="text/css">
body {
color:black;
background-color:white;
background-image:url(images/fond1.jpg);
background-attachment:fixed;
}
a {
text-decoration: none;
color: black;
}
</style>
</head>
<body>
<br><br><br>
<center>
<b>RÉINITIALISATION DU MOT DE PASSE</b>
<br>
<?php echo $msg; ?>
<br><br>
<form action="" method="post">
<label>Votre adresse courriel :
<br><br><input type="text" name="mail" value="" /></label>
<br><br>
<button type="submit">ENVOYER</button>
</form>
</body>
</center>
</html>