laurence1201 Posté 17 Juillet 2020 Posté 17 Juillet 2020 Bonjour Je suis novice J'ai créé mon site internet. Je l'ai mis en ligne avec filezilla tout va bien. Mon formulaire de contact est donc contact.html où j'ai créé mon formulaire et j'y ai mis la ligne <form action="traitement.php" method="post"> et j'ai créé une page traitement.php où j'ai mis la ligne $destinataire = moi@gmail.com' afin de recevoir les données par mail. Mon formulaire n'est pas envoyé. Quelqu'un pour vérifier mon codage?
Aenoa Posté 17 Juillet 2020 Posté 17 Juillet 2020 Bonjour! Malheureusement sans le code il sera difficile de le vérifier avez-vous vérifié que votre hébergeur autorise l'utilisation de la fonction mail() en php? C'est assez commun d'avoir cela désactivé chez les hébergeurs. Avec un bout de code je pourrais vous en dire plus! Excellente journée! Aenoa
laurence1201 Posté 17 Juillet 2020 Auteur Posté 17 Juillet 2020 merci donc mon traitement.php pour les essais je suis chez lescigales.org <?php $destinataire = 'moi@gmail.com'; $copie = 'non'; $message_envoye = "Votre message nous est bien parvenu !"; $message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP."; $message_erreur_formulaire = "Vous devez d'abord <a href=\"contact.html\">envoyer le formulaire</a>."; $message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur."; if (!isset($_POST['envoi'])) { echo '<p>'.$message_erreur_formulaire.'</p>'."\n"; } else { function Rec($text) { $text = htmlspecialchars(trim($text), ENT_QUOTES); if (1 === get_magic_quotes_gpc()) { $text = stripslashes($text); } $text = nl2br($text); return $text; }; function IsEmail($email) { $value = preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $email); return (($value === 0) || ($value === false)) ? false : true; } $nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : ''; $prenom = (isset($_POST['prenom'])) ? Rec($_POST['prenom']) : ''; $telephone = (isset($_POST['telephone'])) ? Rec($_POST['telephone']) : ''; $email = (isset($_POST['email'])) ? Rec($_POST['email']) : ''; $motif = (isset($_POST['motif'])) ? Rec($_POST['motif']) : ''; $message = (isset($_POST['message'])) ? Rec($_POST['message']) : ''; $email = (IsEmail($email)) ? $email : ''; if (($nom != '') && ($email != '') && ($objet != '') && ($message != '')) { $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'From:'.$nom.' <'.$email.'>' . "\r\n" . 'Reply-To:'.$email. "\r\n" . 'Content-Type: text/plain; charset="utf-8"; DelSp="Yes"; format=flowed '."\r\n" . 'Content-Disposition: inline'. "\r\n" . 'Content-Transfer-Encoding: 7bit'." \r\n" . 'X-Mailer:PHP/'.phpversion(); if ($copie == 'oui') { $cible = $destinataire.';'.$email; } else { $cible = $destinataire; }; $caracteres_speciaux = array(''', '’', '"', '<br>', '<br />', '<', '>', '&', '…', '’', '‘'); $caracteres_remplacement = array("'", "'", '"', '', '', '<', '>', '&', '...', '>>', '<<' ); $objet = html_entity_decode($objet); $objet = str_replace($caracteres_speciaux, $caracteres_remplacement, $objet); $message = html_entity_decode($message); $message = str_replace($caracteres_speciaux, $caracteres_remplacement, $message); $num_emails = 0; $tmp = explode(';', $cible); foreach($tmp as $email_destinataire) { if (mail($email_destinataire, $objet, $message, $headers)) $num_emails++; } if ((($copie == 'oui') && ($num_emails == 2)) || (($copie == 'non') && ($num_emails == 1))) { echo '<p>'.$message_envoye.'</p>'; } else { echo '<p>'.$message_non_envoye.'</p>'; }; } else { echo '<p>'.$message_formulaire_invalide.' <a href="contact.html">Retour au formulaire</a></p>'."\n"; }; };(!isset($_POST['envoi'])) ?>
laurence1201 Posté 17 Juillet 2020 Auteur Posté 17 Juillet 2020 Mon fichier formulaire <form action="traitement.php" method="post"> <p> <strong>Nom<span style="color: #ff0000;">*</span> :</strong> <label for="nom"> </label> <input id="nom" name="nom" size="28" type="text" /> <br> <strong>Prénom :</strong> <label for="prenom"></label> <input id="prenom" name="prenom" size="27" type="text" /> <br /> <strong>Téléphone<span style="color: #ff0000;">*</span> :<label for="telephone"></label></strong> <input id="telephone" name="telephone" size="27" type="text" /> <br> <strong>Mail <span style="color: #ff0000;">*</span> : </strong><br /> <label for="email"> </label><input id="email" name="email" size="81" type="text" /></p> <p>Pour quelle raison nous contactez-vous ?</p> <label for="motif"></label> <select id="motif" name="motif"> <option value="reglement">Pour un renseignement</option> <option value="suggestion">Pour une suggestion</option> <option value="remarque">Pour une remarque</option> <option value="recouvrement">Pour autre chose</option> </select><br> <p>Message <span style="color: #ff0000;">*</span> :</p> <p><label for="message"></label> <textarea id="message" cols="52" rows="7" name="message"></textarea></p> <input type="reset" value="Effacer" /> <input type="submit" value="Envoyer" />
Dan Posté 17 Juillet 2020 Posté 17 Juillet 2020 Pour info, la fonction suivante est déclarée comme obsolète depuis php 7.4 et retourne toujours "false" depuis php 5.4.0 get_magic_quotes_gpc() De plus, je ne vois aucune variable $_POST['envoi'] ni $_POST['objet'] L'absence de $_POST['envoi'] fait que la boucle principale n'est pas atteinte et l'absence de $_POST['objet']oblige à changer ce qui suit J'ai remplacé la ligne motif de ton formulaire par <label for="objet"></label> <select id="objet" name="objet"> J'ai aussi modifié les lignes suivantes : $caracteres_speciaux = array("'", "’", '"', '<br>', '<br />', '<', '>', '&', '…', '’', "‘"); $caracteres_remplacement = array("'", "'", '"', '', '', '<', '>', '&', '... et remplacé le if (!isset($_POST['envoi'])) par if (!isset($_POST['message'])) Pour info, tu ne reçois que le message envoyé, pas le nom ni l'email de l'émetteur. Il faudra compléter la ligne mail(...) ou changer le contenu de $message, par exemple : $message = "NOM : ".$nom."\nPRENOM : ".$prenom."\nTELEPHONE :".$telephone."\nEMAIL : ".$email."\nMESSAGE :".$message;
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant