Probleme envoi formulaire en php

ptinouvo Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
 ptinouvo -
Bonjour,

J'ai un soucis: j'ai crée un formulaire de contact sur mon site web.
J'ai écrit un script php pour qu'il me soit envoyé à mon adresse mail mais problème ça ne marche pas. Je suis nouvo dans le web!! Merci pour votre aide

Voici le code de mon formulaire:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<p align="center"><strong>Contact</strong></p>
<table width="500" border="0" align="center" cellpadding="0" cellspacing="0">
<form action="envoi.php" method="post" enctype="application/x-www-form-urlencoded" name="formulaire">
<tr>
<td colspan="3"><strong>Envoyer un message</strong></td>
</tr>
<tr>
<td><div align="left">Votre nom :</div></td>
<td colspan="2"><input type="text" name="nom" size="45" maxlength="100"></td>
</tr>
<tr>
<td width="17%"><div align="left">Votre mail :</div></td>
<td colspan="2"><input type="text" name="mail" size="45" maxlength="100"></td>
</tr>
<tr>
<td><div align="left">Sujet : </div></td>
<td colspan="2"><input type="text" name="objet" size="45" maxlength="120"></td>
</tr>
<tr>
<td><div align="left">Message : </div></td>
<td colspan="2"><textarea name="message" cols="50" rows="10"></textarea></td>
</tr>
<tr>
<td></td>
<td width="42%"><center>
<input type="reset" name="Submit" value="Réinitialiser le formulaire">
</center></td>
<td width="41%"><center>
<input type="submit" name="Submit" value="Envoyer">
</center></td>
</tr>
</form>
</table>

Et voici le code php de mon fichier envoi.php:

1.<?php
$nom=$HTTP_POST_VARS['nom'];
$mail=$HTTP_POST_VARS['mail'];
$objet=$HTTP_POST_VARS['objet'];
$message=$HTTP_POST_VARS['message'];

/////voici la version Mine
$headers = "MIME-Version: 1.0\r\n";

//////ici on détermine le mail en format text
$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";

////ici on détermine l'expediteur et l'adresse de réponse
$headers .= "From: $nom <$mail>\r\nReply-to : $nom <$mail>\nX-Mailer:PHP";

$subject="$objet";
$destinataire="mon adresse@yahoo.fr"; //remplacez "webmaster@votre-site.com" par votre adresse e-mail
$body="$message";
if (mail($destinataire,$subject,$body,$headers)) {
echo "Votre mail a été envoyé<br>";
} else {
echo "Une erreur s'est produite";
}
?></p>
<p align="center">Vous allez bientot etre redirigé vers la page d'acceuil<br>
Si vous n'etes pas redirigé au bout de 5 secondes cliquez <a href="http://www.henrilamare.com">ici
</a></p>

Merci d'avance pour résoudre ce problème qui n'est pas bien compliqué pour un informaticien aguerri mais qui constitue un réel obstacle pour un novice.

8 réponses

avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Tu es nouveau dans le monde du Web mais tu codes avec des anciennes pratiques.
C'est $_POST et pas $HTTP_POST_VARS
Et il faut voir si ton hébergeur accepte la fonction mail()
0
ptinouvo Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Ok F16, je réactualise mon code

.<?php
$nom=$_POST['nom'];
$mail=$_POST['mail'];
$objet=$_POST['objet'];
$message=$_POST['message'];

/////voici la version Mine
$headers = "MIME-Version: 1.0\r\n";

//////ici on détermine le mail en format text
$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";

////ici on détermine l'expediteur et l'adresse de réponse
$headers .= "From: $nom <$mail>\r\nReply-to : $nom <$mail>\nX-Mailer:PHP";

$subject="$objet";
$destinataire="mon adresse@yahoo.fr"; //remplacez "webmaster@votre-site.com" par votre adresse e-mail
$body="$message";
if (mail($destinataire,$subject,$body,$headers)) {
echo "Votre mail a été envoyé<br>";
} else {
echo "Une erreur s'est produite";
}
?></p>
<p align="center">Vous allez bientot etre redirigé vers la page d'acceuil<br>
Si vous n'etes pas redirigé au bout de 5 secondes cliquez <a href="http://www.henrilamare.com">ici
</a></p>

J'ai mis en ligne le formulaire, quand je fais un test, il m'indique que le formulaire à bien été envoyé ( c'est que mon hébregeur accepte la fonction mail??? mais je ne reçois pas le mail.
Mon hébergeur est OVH.
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
<?php
/* Données */
$nom = $_POST['nom']; 
$mail = $_POST['mail']; 
$subject = $_POST['objet']; 
$body = $_POST['message']; 

/* Entêtes */
$headers  = 'Content-type: text/plain; charset=iso-8859-1'."\r\n"; 
$headers .= 'From: '.$nom.' <'.$mail.'>'."\r\n";
$headers .= 'Reply-to: '.$nom.' <'.$mail.'>'."\r\n";
$headers .= 'X-Mailer: PHP/'.phpversion();

$destinataire = 'monadresse@yahoo.fr';

if(mail($destinataire,$subject,$body,$headers)) { 
	echo "Votre mail a été envoyé<br>"; 
} else { 
	echo "Une erreur s'est produite"; 
} 
?>
</p> 
<p style="text-align:center;">
	Vous allez bientôt être redirigé vers la page d'accueil<br/> 
	Si vous n'êtes pas redirigé au bout de 5 secondes, cliquez <a href="http://www.henrilamare.com">ici</a>.
</p>
J'ai un peu améliorer ton code.
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
chez OVH, dans le $headers

il ne faut pas \r\n mais seulement \n à la fin des lignes
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
T'en es sûr ?
Je suis chez OVH et \r\n fonctionne ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
moi j'avais des pb avec \r\n et j'avais lu dans le forum OVH qu'il ne les fallait pas, j'ai modifie mes scripts en \n et ils fonctionnent.

Cela date d'un an au moins, je n'ai pas réessayé depuis.
0
ptinouvo Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
En tout cas je viens d'essayer et le mail m'est bien transmis sauf que dans le mail que je reçois il n'ya pas l'adresse mail de l'expediteur que je lui demande de renseigner dans le formulaire!!

Mais sinon vous êtes des pros merci!!!
Si vous avez une idée comment améliorer mon code pour que je reçoive totues les infos du formulaire!!
Merci d'avance
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Le nom est l'adresse de l'expéditeur sont à notée quelque-part dans ton client mail.
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
tu reuperes bien:

$nom = $_POST['nom'];
$mail = $_POST['mail'];
$subject = $_POST['objet'];
$body = $_POST['message'];


mais dans le mail envoyé

mail($destinataire,$subject,$body,$headers)

tu ne reprend que le sujet et le body

donc il faut:
$nom = $_POST['nom']; 
$mail = $_POST['mail']; 
$subject = $_POST['objet']; 
$body=$nom."\n    ".$mail."\n\n";  // \n c'est pour avoir des saut de ligne dans ton mail
$body .= $_POST['message'];
0
ptinouvo
 
merci alain et F16 pour vos conseils!!!
0