Pb de reception de mail par formulaire
Résolu/Fermé
willy
-
15 avril 2010 à 13:55
a70m Messages postés 2763 Date d'inscription jeudi 21 mai 2009 Statut Contributeur Dernière intervention 2 février 2014 - 17 avril 2010 à 11:52
a70m Messages postés 2763 Date d'inscription jeudi 21 mai 2009 Statut Contributeur Dernière intervention 2 février 2014 - 17 avril 2010 à 11:52
A voir également:
- Pb de reception de mail par formulaire
- Accusé de reception gmail - Guide
- Probleme de reception tnt aujourd'hui 2023 - Guide
- Yahoo mail - Guide
- Accusé de reception outlook - Guide
- Serveur de reception - Guide
7 réponses
bqst
Messages postés
58
Date d'inscription
mercredi 6 janvier 2010
Statut
Membre
Dernière intervention
24 janvier 2012
24
15 avril 2010 à 13:59
15 avril 2010 à 13:59
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
a70m
Messages postés
2763
Date d'inscription
jeudi 21 mai 2009
Statut
Contributeur
Dernière intervention
2 février 2014
217
15 avril 2010 à 14:01
15 avril 2010 à 14:01
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>
a70m
Messages postés
2763
Date d'inscription
jeudi 21 mai 2009
Statut
Contributeur
Dernière intervention
2 février 2014
217
Modifié par a70m le 15/04/2010 à 15:14
Modifié par a70m le 15/04/2010 à 15:14
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
a70m
Messages postés
2763
Date d'inscription
jeudi 21 mai 2009
Statut
Contributeur
Dernière intervention
2 février 2014
217
15 avril 2010 à 17:16
15 avril 2010 à 17:16
Comment s'appelle la page sur laquelle tu as mis ce code ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
a70m
Messages postés
2763
Date d'inscription
jeudi 21 mai 2009
Statut
Contributeur
Dernière intervention
2 février 2014
217
15 avril 2010 à 17:28
15 avril 2010 à 17:28
Je te le corrige, je le teste, et je te l'envoie ;)
a70m
Messages postés
2763
Date d'inscription
jeudi 21 mai 2009
Statut
Contributeur
Dernière intervention
2 février 2014
217
15 avril 2010 à 17:50
15 avril 2010 à 17:50
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
a70m
Messages postés
2763
Date d'inscription
jeudi 21 mai 2009
Statut
Contributeur
Dernière intervention
2 février 2014
217
16 avril 2010 à 23:25
16 avril 2010 à 23:25
C'est ton adresse qui bugue alors. J'ai testé la page avec mon mail, ça marchait.
a70m
Messages postés
2763
Date d'inscription
jeudi 21 mai 2009
Statut
Contributeur
Dernière intervention
2 février 2014
217
17 avril 2010 à 11:52
17 avril 2010 à 11:52
Derien :)