Pb de reception de mail par formulaire
Résolu
willy
-
a70m Messages postés 2763 Date d'inscription Statut Contributeur Dernière intervention -
a70m Messages postés 2763 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour les experts,
voila, j'ai un petit pb. J'ai réaliser un formulaire de contact tout simple dont voici le code
contact.php
<!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>Contact</title>
</head>
<body>
<form method="POST" action="traitement.php" name="contact">
<br> Nom : <input type="text" name="pseudo"><br />
<br>Mail : <input type="text" name="mail"><br />
<br><textarea cols="70" rows="10" name="message">Entrer ici votre message</textarea>
<input type="submit" value="Envoyer"/>
</form>
</body>
</html>
traitement.php
<?php
if(isset($_POST['pseudo']) AND isset($_POST['mail']) AND isset($_POST['message']) )
{
if($_POST['pseudo']!=NULL AND $_POST['mail']!=NULL AND $_POST['message']!=NULL)
{
$pseudo=stripslashes($_POST['pseudo']);
$mail=stripslashes($_POST['mail']);
$message=stripslashes($_POST['message']);
$adresse="mon_adresse@fai.fr";
$titre="Un message de : $pseudo";
$contenu="$pseudo envoie le msg suivant:\n \n $message \n \n E-mail du destinataire : $mail";
$headers='From:"johnson contact" <'.$mail.'>'."\n";
mail($adresse, $titre, $contenu, $headers);
echo "Votre msg a été envoyé";
}
else
{
echo"Votre msg n'a pas été envoyé";
}
}
?>
le pb c'est que je ne reçois aucun mail une fois le formulaire rempli sur internet. je suis poutant hébergé chez un hébergeur.
voila, j'ai un petit pb. J'ai réaliser un formulaire de contact tout simple dont voici le code
contact.php
<!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>Contact</title>
</head>
<body>
<form method="POST" action="traitement.php" name="contact">
<br> Nom : <input type="text" name="pseudo"><br />
<br>Mail : <input type="text" name="mail"><br />
<br><textarea cols="70" rows="10" name="message">Entrer ici votre message</textarea>
<input type="submit" value="Envoyer"/>
</form>
</body>
</html>
traitement.php
<?php
if(isset($_POST['pseudo']) AND isset($_POST['mail']) AND isset($_POST['message']) )
{
if($_POST['pseudo']!=NULL AND $_POST['mail']!=NULL AND $_POST['message']!=NULL)
{
$pseudo=stripslashes($_POST['pseudo']);
$mail=stripslashes($_POST['mail']);
$message=stripslashes($_POST['message']);
$adresse="mon_adresse@fai.fr";
$titre="Un message de : $pseudo";
$contenu="$pseudo envoie le msg suivant:\n \n $message \n \n E-mail du destinataire : $mail";
$headers='From:"johnson contact" <'.$mail.'>'."\n";
mail($adresse, $titre, $contenu, $headers);
echo "Votre msg a été envoyé";
}
else
{
echo"Votre msg n'a pas été envoyé";
}
}
?>
le pb c'est que je ne reçois aucun mail une fois le formulaire rempli sur internet. je suis poutant hébergé chez un hébergeur.
A voir également:
- Pb de reception de mail par formulaire
- Whatsapp formulaire opposition - Guide
- Accusé de reception gmail - Guide
- Problème de réception tv pas de signal aujourd' hui - Guide
- Serveur de reception mail - Guide
- Formulaire de réclamation facebook - Guide
7 réponses
c'est un probléme d'entête, prend exemple là-dessus :
https://www.commentcamarche.net/faq/4516-webmaster-un-formulaire-de-contact-pour-votre-site
cordialement
https://www.commentcamarche.net/faq/4516-webmaster-un-formulaire-de-contact-pour-votre-site
cordialement
Salut,
Je te conseille de le faire autrement.
Sur la page où il y a ton formulaire, dans la balise <form> dans l'attribut action
Tu vas mettre : action="nom_de_ta_page_ou_il_y_a_le_formulaire.php?envoi=1"
Et endessous de ton formulaire, tu vas mettre le code qu'il y a dans ta page traitement, en mettant le tout dans un if. Je m'explique :
En somme tu auras su ta page contact.php
Ton formulaire avec le action="contact.php?envoi=1" dans la balise <form>
Et en dessous, le code que tu avais avant dans traitement.php dans le if que je t'ai donné juste au dessus.
Cordialement
Je te conseille de le faire autrement.
Sur la page où il y a ton formulaire, dans la balise <form> dans l'attribut action
Tu vas mettre : action="nom_de_ta_page_ou_il_y_a_le_formulaire.php?envoi=1"
Et endessous de ton formulaire, tu vas mettre le code qu'il y a dans ta page traitement, en mettant le tout dans un if. Je m'explique :
if(envoi == 1)
{
TOUT LE CODE QU'IL Y A SUR TA PAGE TRAITEMENT.PHP
}
En somme tu auras su ta page contact.php
Ton formulaire avec le action="contact.php?envoi=1" dans la balise <form>
Et en dessous, le code que tu avais avant dans traitement.php dans le if que je t'ai donné juste au dessus.
Cordialement
j'ai reconfiguré comme tu me l'as dit, mais ca ne marche tjrs pas.je tedonne l'adresse de mon site si tu souhaite faire le test.
www.johnsoncertification.com puis taper le lien"Qualité"
de plus il me met un msg erreur sur la variable contact que j'ai introduit (Notice: Undefined variable: envoi in C:\wamp\www\test\contact.php on line 16)
voici le code modifié :
<!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>Contact</title>
</head>
<body>
<form method="POST" action="contact.php?envoi=1">
<br> Nom : <input type="text" name="pseudo"><br />
<br>Mail : <input type="text" name="mail"><br />
<br><textarea cols="70" rows="10" name="message">Entrer ici votre message</textarea>
<input type="submit" value="Envoyer"/>
<?php
if(envoi == 1)
{
if(isset($_POST['pseudo']) AND isset($_POST['mail']) AND isset($_POST['message']) )
{
if($_POST['pseudo']!=NULL AND $_POST['mail']!=NULL AND $_POST['message']!=NULL)
{
$pseudo=stripslashes($_POST['pseudo']);
$mail=stripslashes($_POST['mail']);
$message=stripslashes($_POST['message']);
$adresse="contacts@johnsoncertification.com";
$titre="Un message de : $pseudo";
$contenu="$pseudo envoie le msg suivant:\n \n $message \n \n E-mail du destinataire : $mail";
$headers='From:"johnson contact" <'.$mail.'>'."\n";
mail($adresse, $titre, $contenu, $headers);
echo "Votre msg a été envoyé";
}
else
{
echo"Votre msg n'a pas été envoyé";
}
}
}
?>
</form>
</body>
</html>
www.johnsoncertification.com puis taper le lien"Qualité"
de plus il me met un msg erreur sur la variable contact que j'ai introduit (Notice: Undefined variable: envoi in C:\wamp\www\test\contact.php on line 16)
voici le code modifié :
<!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>Contact</title>
</head>
<body>
<form method="POST" action="contact.php?envoi=1">
<br> Nom : <input type="text" name="pseudo"><br />
<br>Mail : <input type="text" name="mail"><br />
<br><textarea cols="70" rows="10" name="message">Entrer ici votre message</textarea>
<input type="submit" value="Envoyer"/>
<?php
if(envoi == 1)
{
if(isset($_POST['pseudo']) AND isset($_POST['mail']) AND isset($_POST['message']) )
{
if($_POST['pseudo']!=NULL AND $_POST['mail']!=NULL AND $_POST['message']!=NULL)
{
$pseudo=stripslashes($_POST['pseudo']);
$mail=stripslashes($_POST['mail']);
$message=stripslashes($_POST['message']);
$adresse="contacts@johnsoncertification.com";
$titre="Un message de : $pseudo";
$contenu="$pseudo envoie le msg suivant:\n \n $message \n \n E-mail du destinataire : $mail";
$headers='From:"johnson contact" <'.$mail.'>'."\n";
mail($adresse, $titre, $contenu, $headers);
echo "Votre msg a été envoyé";
}
else
{
echo"Votre msg n'a pas été envoyé";
}
}
}
?>
</form>
</body>
</html>
Oups. C'est moi qui ai fait une faute.
Dans le if que je t'ai donné, il faut juste rajouter le '$' à envoi pour lui dire que c'est une variable.
donc tu auras :
Encore désolé. Ca devrait marcher maintenant.
Si un jour, l'envie de travailler te prends, assied-toi et attends que ca passe ...
Les boulets, on ne les aime que dans les quotes ! Merci
Dans le if que je t'ai donné, il faut juste rajouter le '$' à envoi pour lui dire que c'est une variable.
donc tu auras :
if($envoi ==1) { Etc etc ...
Encore désolé. Ca devrait marcher maintenant.
Si un jour, l'envie de travailler te prends, assied-toi et attends que ca passe ...
Les boulets, on ne les aime que dans les quotes ! Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Voilà, j'ai trouvé le problème !
Désolé pour le temps aussi, j'ai eu un imprévu.
Donc le problème venait de la syntaxe lors de la définition de tes variables $destinataire, $headers, etc etc ...
Si tu as besoin de précisions quant à la syntaxe, n'hésite pas à repasser ici.
Je l'ai complètement codé pour toi, avec ton adresse mail, tu n'as plus qu'à le mettre dans ta page contact.php en supprimant tout ce qu'il y avait avant.
J'ai également apporté des modifications pratiques :
- L'encodage, il ne reconnaissait pas les accents avant.
- La sécurisation des formulaires, qui empêche l'auteur du message d'inclure du HTML qui pourrait nuire à la page Web, ou au mail.
- L'ajout d'alerte en JavaScript qui affiche si le message a bien été envoyé ou s'il y a une erreur.
- La suppression du message "Entrez votre message ici" lorsqu'on clique dans la zone de texte.
Voici le code :
Si tu as des soucis, ou des questions, contacte-moi ;)
Cordialement
a70m
Désolé pour le temps aussi, j'ai eu un imprévu.
Donc le problème venait de la syntaxe lors de la définition de tes variables $destinataire, $headers, etc etc ...
Si tu as besoin de précisions quant à la syntaxe, n'hésite pas à repasser ici.
Je l'ai complètement codé pour toi, avec ton adresse mail, tu n'as plus qu'à le mettre dans ta page contact.php en supprimant tout ce qu'il y avait avant.
J'ai également apporté des modifications pratiques :
- L'encodage, il ne reconnaissait pas les accents avant.
- La sécurisation des formulaires, qui empêche l'auteur du message d'inclure du HTML qui pourrait nuire à la page Web, ou au mail.
- L'ajout d'alerte en JavaScript qui affiche si le message a bien été envoyé ou s'il y a une erreur.
- La suppression du message "Entrez votre message ici" lorsqu'on clique dans la zone de texte.
Voici le code :
<!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=iso-8859-1"> <title>Contact</title> </head> <body> <form method="POST" action="contact.php?envoi=1"> <br> Nom : <input type="text" name="pseudo"><br /> <br>Mail : <input type="text" name="mail"><br /> <br><textarea cols="70" rows="10" name="message" onFocus="if(this.value=='Entrez ici votre message')this.value=''">Entrez ici votre message</textarea> <br> <input type="submit" value="Envoyer"/> <?php if($envoi == 1) { if(isset($_POST['pseudo']) AND isset($_POST['mail']) AND isset($_POST['message']) ) { if($_POST['pseudo'] != NULL AND $_POST['mail'] != NULL AND $_POST['message'] != NULL) { $pseudo = htmlspecialchars($_POST['pseudo']); $mail = htmlspecialchars($_POST['mail']); $message = htmlspecialchars(stripslashes($_POST['message'])); $destinataire = 'contacts@johnsoncertification.com'; $sujet = 'Un message de : '.$pseudo; $entetes = 'From: '.$mail; $contenu = $pseudo.' envoie le msg suivant: '.$message.' E-mail du destinataire : '.$mail; mail($destinataire, $sujet, $contenu, $entetes); ?> <script language="JavaScript1.2"> { alert('Votre message a bien été envoyé. Nous tâcherons d\'y répondre dans les plus brefs délais.'); } </script> <?php } else { ?> <script language="JavaScript1.2"> { alert('Tous les champs sont obligatoires. Veuillez recommencer.'); } </script> <?php } } } ?> </form> </body>
Si tu as des soucis, ou des questions, contacte-moi ;)
Cordialement
a70m