Problème envoi formulaire :s
Post-Prod-Fr.com -> Programmation
Auteur Message
bnr-production
[ Membre ]
bnr-production

Messages : 118
Posté le: 08 Fév 2010 13:19 || Sujet du message: Problème envoi formulaire :s
Salut,
J'ai créé un formulaire de contact pour mon site internet. Quand j'envoie mon mail par ce formulaire il me dit que le message est parti mais je ne le reçois pas dans ma boîte de réception.
D'où vient ce problème?

Formulaire :
Code :
<form id="contact" method="post" action="cible.php">
<fieldset><legend>Vos coordonnées</legend>
<p>Nom :<br /><input type="text" id="nom" name="nom" tabindex="1" /></p>
<p>Email :<br /><input type="text" id="email" name="email" tabindex="2" /></p>
</fieldset>

<fieldset><legend>Votre message :</legend>
<p>Objet :<br /><input type="text" id="objet" name="objet" tabindex="3" /></p>
<p>Message :<br /><textarea id="message" name="message" tabindex="4" cols="45" rows="8"></textarea></p>
</fieldset>

<div style="text-align:center;"><input type="submit" name="envoi" value="Envoyer !" /></div>
</form>


Cible.php
Code :
<?php $formEmail = $_POST['email'];
$formNom = $_POST['nom'];
$formObjet = $_POST['objet'];
$formMessage = $_POST['message'];

if(!empty($formEmail) && !empty($formNom) && !empty($formObjet) ){
$formMessage = htmlentities($formMessage);
$message = "$formNom vous contact via votre formulaire.\n \n message : \n $formMessage";
if( mail('bnr-production@hotmail.fr','sujet','$message') ){ echo 'Le message à bien été envoyé.'; }
else{ echo 'Une erreur est survenue lors de l\'envoi du message'; }
}
else{ //il y a des champs vide
echo 'Merci de remplir les champs nom, objet et email'; }
?>


Merci de vos réponses,
benjiwolff

[Ce message à été édité par son auteur pour la dernière fois le 08 Fév 2010 13:19]


________________
http://bnr-production.moonfruit.fr
Revenir en haut Voir le Profil Voir le Site Web
patate_violente
[ Admin ]
patate_violente

Messages : -626
+2856
Posté le: 08 Fév 2010 15:38
Salut

as-tu initialisé le serveur SMTP ?
met ça avant la fonction mail()
Code :
ini_set("SMTP",'');

je n'ai pas lu la doc, c'est peut-être inutile puisque par défaut c'est celui du serveur et il est sûrelent initialisé avant mais essai avec ça

Voilà sinon je ne vois pas d'erreur apparente dans ton script, mais si ça ne marche toujours pas je t'invite à essayer avec un header :
Code :
$headers = "To: TonNom Tonprénom <$myemail>\r\nFrom: $nom <$email>\r\n";

avec
  • $myemail l'email du receveur
  • $nom le nom de la personne qui t'envoi le mail
  • $email son email


ce qui te donnera, code complet :
Code :
ini_set("SMTP",'');
$formEmail = $_POST['email'];
$formNom = $_POST['nom'];
$formObjet = $_POST['objet'];
$formMessage = $_POST['message'];
$headers = "To: BNR-Prod <bnr-production@hotmail.fr>\r\nFrom: $formNom <$formEmail>\r\n";

if(!empty($formEmail) && !empty($formNom) && !empty($formObjet) )
{
$formMessage = htmlentities($formMessage);
$message = "$formNom vous contact via votre formulaire.\n \n message : \n $formMessage";
if( mail('bnr-production@hotmail.fr','sujet',$message, $headers))
echo 'Le message à bien été envoyé.';
else
echo 'Une erreur est survenue lors de l\'envoi du message';
}
else{ // il y a des champs vides
echo 'Merci de remplir les champs nom, objet et email';
}


voilà, si ça ne marche pas je te donnerais le miens qui marche au top mais pourtant il me semble que c'est bien rempli
________________
image
Revenir en haut Voir le Profil Voir le Site Web
bnr-production
[ Membre ]
bnr-production

Messages : 118
Posté le: 09 Fév 2010 08:47
Merci bcp pour ta réponse.
J'ai testé le code que tu m'as donné et ça marche mais les caractères spéciaux ne fonctionne pas... Cependant j'ai trouvé un script sur internet qui marche bien. Sauf que pour tout les codes que j'ai testé un problème persiste... Je ne reçois pas les messages sur mon adresse hotmail alors que sur gmail ça marche. D'où vient ce problème?

Ensuite sur le script que j'ai testé j'aimerai bien qu'il vérifie si les champs Nom, objet et message soit remplis :

Code :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<?php

?>
<?php
$commentaire = $_POST["commentaire"]; // On récupére le contenus du textarea de VerifMessage.php

$TO = "benjiwolff@gmail.com"; // Adresse email ou vous allez recevoir le/les message(s).

$h = "From: " . "http://les-jumeaux-magiques.webuda.com"; // Entrer l'adresse de votre site ou l'adresse email de votre site.

$message = ""; // Laisser vide.

$subject = "Formulaire de contact"; //Sujet du mail que vous allez recevoir.

if(!empty($formEmail) && !empty($formNom) && !empty($formObjet) )

{

$formMessage = htmlentities($formMessage);

$message = "$formNom vous contact via votre formulaire.\n \n message : \n $formMessage";

if( mail('benjiwolff@gmail.com','sujet',$message, $headers))

echo 'Le message à bien été envoyé.';

else

echo 'Une erreur est survenue lors de l\'envoi du message';

}

else{ // il y a des champs vides

echo 'Merci de remplir les champs nom, objet et email';

}

while (list($key, $val) = each($HTTP_POST_VARS)) { // Ne pas touchez !
$message .= "$key : $val\n"; // Ne pas touchez !
}

mail($TO, $subject, $message, $h); // Ne pas touchez !

?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>FORMULAIRE DE CONTACT</title>
<link href="style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
<!--
function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
</script>

</head>

<body onload="MM_preloadImages('images/Accueil_hover.png','images/Episodes_hover.png','images/vidéos_hover.png','images/Videos_hover.png','images/photos_hover.png','images/contact_hover.png','images/qui_hover.png','images/bnr_hover.png','images/equipe_hover.png')">
<div id="banniere"></div>
<?php include("menu.php"); ?>
<div id="contenu"><p id="titre_JM">FORMULAIRE DE CONTACT</p>
<p align="center">Votre message vient d'être envoyé !</p>



<form method="POST" action="formulaire-de-contact_5068/Formulaire de contact/SendMessage.php" name="Send">
<p align="center">
<a href="javascript:history.back(-2)">Revenir en arrière</a></p>
</form>
</div>
</body>
</html>

[Ce message à été édité par son auteur pour la dernière fois le 09 Fév 2010 09:00]


________________
http://bnr-production.moonfruit.fr
Revenir en haut Voir le Profil Voir le Site Web
Eru
[ Membre ]
Eru

Messages : 54
+33
Posté le: 09 Fév 2010 20:34
Salut, as tu vérifié que Hotmail ne les place pas dans courrier indésirable?
J'ai moi même eu quelques soucis avec Hotmail qui ne voulait pas recevoir des mails... je n'ai jamais trouver la réponse...

En ce qui concerne les vérifications, rien de plus simple

Code :

if(isset($_POST["commentaire"]) && $_POST["commentaire"]!='')){
$commentaire =$_POST["commentaire"];
}


Tu reproduits cela pour chacune des variables $_POST.

J'espère que cela t'aidera.
Bon courage.

________________
Noël au balcon, paco rabane
Revenir en haut Voir le Profil Voir le Site Web
patate_violente
[ Admin ]
patate_violente

Messages : -626
+2856
Posté le: 09 Fév 2010 21:06
ok donc si c'est juste un blocage d'hotmail, tu ne peux rien faire si tu n'a pas d'option "non cet email n'est pas du spam..." personnellement j'en ai tellement soupé d'hotmail que j'ai vite banni l'adresse

pour tester les champs, je complèterai la réponse d'Eru pour automatiser un peu la tache :

Code :
// tu rentres le nom de champs là
$champs= array("nonChamp", "aitreNom", "blablabl");

for($i=0; $i<count($champs); $i++)
{
if( !isset($_POST[$champs[$i]]) || empty(trim($champs[$i])) ){
echo 'Champ '.$champs[$i].' mal rempli';
$annuler = true;
}
}

if(!$annuler)
{
//Tu envois...
}

voilà ça sert à rien, mais ça m'a fait plaisir
________________
image
Revenir en haut Voir le Profil Voir le Site Web
bnr-production
[ Membre ]
bnr-production

Messages : 118
Posté le: 10 Fév 2010 12:47
Merci beaucoup je teste ça dès que je peux et je vous tiens au courant ;)
________________
http://bnr-production.moonfruit.fr
Revenir en haut Voir le Profil Voir le Site Web
Post-Prod-Fr.com -> Programmation


Qui est en ligne ?
Qui est en ligne ?

Il y a en tout 0 utilisateur en ligne : 0 visible et 0 invisible(dans les 5 dernières minutes)
Code de couleur : [ Administrateurs ] [ Modérateurs ] [ Rédacteurs ]
Utilisateur connecté : + 10 visiteurs

Stats : Nos membres ont postés un total de 130115 messages dont 28311 ont été postés depuis le 25 décembre 2007 et 101804 sont archivés.
Nous avons 4094 membres enregistrés. L'utilisateur enregistré le plus récent est ziwei.