Aucun envoie de mail via php

Petit nouveau ! | 5 Messages

30 mai 2019, 10:41

bonjour voila je n'arrive pas , à envoyer le mail pour le mot de passe oublié voici son code ou ai-je une erreur

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>
Modifié en dernier par mrbendix le 30 mai 2019, 10:58, modifié 1 fois.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

05 juin 2019, 00:43

Bonjour,

Il faut que tu avances davantage dans ton debugage pour qu'on puisse t'aider efficacement.
Regarde les logs d'erreur de ton serveur.
Exécute ton code pas à pas en faisant des var_dump() régulier pour savoir à quel moment ça ne se passe pas comme prévu.
Et revient vers nous quand tu auras un message d'erreur ou un problème identifié précisément.
Quand tout le reste a échoué, lisez le mode d'emploi...