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
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.
A voir également:

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
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
0
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
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 :

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
0
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>
0
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
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 :

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
0
en rajoutant $ le msg d'erreur reste tjrs le même
0
contact.php
0
trop sympa!!!
0
cool!

je teste et te tiens au courant

Will...
0
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
Comment s'appelle la page sur laquelle tu as mis ce code ?
0

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
Je te le corrige, je le teste, et je te l'envoie ;)
0
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
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 :


<!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
0
ca bug tjrs au niveau de l'envoi sur mon adresse email
0
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
C'est ton adresse qui bugue alors. J'ai testé la page avec mon mail, ça marchait.
0
je te remercie bcp. je vais voir du coté de mon adresse


ciao!!!!
0
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
Derien :)
0