Formulaire de contact html puis php
t671 Messages postés 1476 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un formulaire de contact qui ne fonctionne pas. J'ai aucun retour d'erreur
Partie html :
<html> <body background="images/fond_noir.jpg"> <center><h3><font color="#FF0000"><u>Merci de bien vérifier votre adresse email pour que je puisse vous répondre</u></font></h3> <FORM method="POST" action="contact.php"> <P>Votre nom:<br> <INPUT type="text" name="nom" size=30> <P>Votre prénom:<br> <INPUT type="text" name="prenom" size=30> </p> <P>Votre adresse E-Mail:<br> <INPUT type="text" name="email" size=30> </p> <P>Votre message:<br> <textarea name="message" cols=74 rows=8></textarea> </p><INPUT type="submit" value="Envoyer"> <input type="reset" value="Effacer"></center> </FORM> </BODY> </HTML>
La partie php :
<?php $nom = $_POST['nom']; $prenom = $_POST['prenom']; $email = $_POST['email']; $message = $_POST['message']; //echo '<pre>'; print_r($_POST); echo '</pre>'; exit; //=> ok $message2 = stripslashes($message); //----pour éviter les \ ds les msgs de réception $nom = strtoupper($nom); $prenom = ucfirst($prenom); $msg = "De:\t$nom $prenom\n"; $msg .= "E-Mail:\t$email\n\n"; $msg .= "Message:\t$message2\n\n"; $recipient = "adresse@free.fr"; $subject = "Contact GNEALOGIE"; $mailheaders .= "Reply-To: $email\n\n"; mail($recipient, $subject, $msg, $mailheaders); echo "<body background='images/fond_noir.jpg'><center><h2>Merci $prenom $nom<p>Votre message est bien parti !</h2></center></style>"; exit; ?>
Merci
- Formulaire de contact php + envoi mail
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Programmer envoi mail gmail - Guide
- Envoyer un mail à un groupe de contact gmail - Guide
- Envoi mail cci - Guide
6 réponses
bonjour
il ne marche pas.... c'est à dire ?
que vous tu quand tu submit ton formulaire ?
as tu essayé de faire un var_dump de tes variables ?
bosses tu en local ou sur un serveur ?
as tu activé l'affichage des erreurs php ?
.
bref, que des choses que je t'ai déjà dit à chacune de tes questions....
Bonjour jordane45,
Tout se déroule correctement. A la fin j'ai le message "Merci $prenom $nom<p>Votre message est bien parti !". Mais je ne reçois pas le message.
J'ai changé $recipient = "adresse@free.fr"; en $recipient = "adresse.free.fr"; ce qui me parait plus juste.
Dans le script php, si j'écris var_dump ($recipient); je reçois bien la valeur de $recipient (string(18) "adresse.free.fr"). Mais rien dans la boîte mail !!!???
Bonjour,
As-tu lu avec précision la réponse de jordane45 ??? tu ne réponds pas à la moitié de ses questions !
Le vardump à faire, ce n'est pas pour la variable destinataire, c'est pour les variables passées par le formulaire.
Car tu ne devrais pas avoir "Merci $prenom $nom<p>Votre message est bien parti !" mais les valeurs contenues dans les variables. ou tu ne donnes pas le message affiché à l'exécution, mais le source, ce qui n'a pas d’intérêt.
En effet, quand j'ai écris "Merci $prenom $nom<p>Votre message est bien parti !" j'aurais dû préciser que les variables $prenom et $nom retournaient les bonnes valeurs. Donc, les variables sont ok !
J'ai changé $recipient = "adresse@free.fr"; en $recipient = "adresse.free.fr"; ce qui me parait plus juste.
Ah ??? Une adresse mail sans arobase ? c'est nouveau non ^^
Quoi qu'il arrive, tu ne m'as pas répondu : Travailles tu en LOCAL ou sur un SERVEUR ?
Si en local, as tu paramétré le SMTP ?
Si sur un serveur ( FREE JE SUPPOSE), attention.. Free limite le nombre d'envoi de mails de façon aléatoire... Le mieux serait de passer à du PHPMAILER
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionJe ne connaissais pas PHPMAILER. J'ai trouvé sur le net à https://analyse-innovation-solution.fr/publication/fr/php/comment-envoyer-un-mail-en-php un exemple.
J'essaye de le suivre, et dès le départ, j'ai l'erreur Parse error: syntax error, unexpected T_STRING, expecting T_CONSTANT_ENCAPSED_STRING or '(' in /mnt/111/sdb/b/a/genfamille/contact.php on line 2
Comment savoir ce que je dois mettre dans : $mail->Port = ....
Plusieurs variable ne doivent pas correspondre. Elles s'appellent toutes $mail ???
<?php $nom = $_POST['nom']; $prenom = $_POST['prenom']; $email = $_POST['email']; $message = $_POST['message']; use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\SMTP; use PHPMailer\PHPMailer\Exception; require_once "vendor/autoload.php"; // Activer ou désactiver les exceptions par variable $debug = true ; try { // Créer une instance de classe PHPMailer $mail = new PHPMailer($debug); if ($debug) { // donne un journal détaillé $mail->SMTPDebug = PHPMailer\PHPMailer\SMTP::DEBUG_SERVER; } } // Authentification via SMTP $mail->isSMTP(); $mail->SMTPAuth = true; // Connexion $mail->Host = "smtp.free.fr"; $mail->Port = 587; $mail->Username = "site@free.fr"; $mail->Password = "mdp"; $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; // Expéditeur $mail->setFrom('info@exemple.fr', 'nom'); // Destinataire dont le nom peut également être indiqué en option $email->addAddress('info@exemple.fr', 'nom'); //$mail->addAttachment("/home/user/Desktop/image.png", "image.png"); $mail->CharSet = 'UTF-8'; $mail->Encoding = 'base64'; $mail->isHTML(true); //$mail->Subject = 'Objet de votre email'; $message->Body = 'Le texte de votre email en HTML. Il est également possible des mettre des éléments en <b>gras</b>, par exemple.'; $message->AltBody = 'Le texte comme simple élément textuel'; $mail->send(); } catch (Exception $e) { echo "Message could not be sent. Mailer Error: ".$e->getMessage(); } ?>
Pour reprendre ma première tentative du php, j'ai fait un
mail($recipient, $msg, $mailheaders);
Après l'envoie du mail, soit mail($recipient, $msg, $mailheaders); j'ai fait un excho des 3 copnstantes. $recipient et $msg sont ok. Mais $mailheaders me retourne mon adresse email sur Gmail !? J'ai vérifié, celle-ci ne figure ni dans le script php ni dans le html.
D'où vient alors cette adresse ? Je suppose que c'est cela qui bloque l'envoie et la reception du mail !!!!