Probleme de code sur formulaire mail !
Dernière réponse : dans Programmation
Salut à tous,
Voila mon probleme, j'ai fais un code pour soumettre un formulaire par mail.
Mon formulaire HTML se dispose ainsi :
Voici comment se compose mon formmail.php (entre balise php cela va de soit!) :
Enfin voici l'erreur soumise par mon navigateur :
Merci aux âmes sensibles à mon probleme de bien vouloir m'aider tant que faure se peut.
Voila mon probleme, j'ai fais un code pour soumettre un formulaire par mail.
Mon formulaire HTML se dispose ainsi :
<FORM METHOD="POST" ACTION="formmail.php">
<INPUT TYPE="hidden" NAME="subject" VALUE="formmail">
<P>Indiquez les coordonnées suivantes :</P>
<BLOCKQUOTE>
<TABLE border="0">
<TR>
<TD ALIGN="right">
<EM>Prénom</EM>
</TD>
<TD>
<INPUT TYPE=TEXT NAME="Contact_Prenom" SIZE=25 >
</TD>
</TR>
<TR>
<TD ALIGN="right">
<EM>Nom</EM></TD>
<TD>
<INPUT TYPE=TEXT NAME="Contact_Nom" SIZE=25 ></TD>
</TR>
<TR>
<TD ALIGN="right">
<EM>Titre</EM></TD>
<TD>
<INPUT TYPE=TEXT NAME="Contact_Titre" SIZE=35 ></TD>
</TR>
<TR>
<TD ALIGN="right">
<EM>Adresse</EM></TD>
<TD>
<INPUT TYPE=TEXT NAME="Contact_Adresse" SIZE=35 ></TD>
</TR>
<TR>
<TD ALIGN="right">
<EM>Adresse (suite)</EM></TD>
<TD>
<INPUT TYPE=TEXT NAME="Contact_Adresse2" SIZE=35 ></TD>
</TR>
<TR>
<TD ALIGN="right">
<EM>Ville</EM></TD>
<TD>
<INPUT TYPE=TEXT NAME="Contact_Ville" SIZE=35></TD>
</TR>
<TR>
<TD ALIGN="right">
<EM>Code postal</EM></TD>
<TD>
<INPUT TYPE=TEXT NAME="Contact_CodePostal" SIZE=12 MAXLENGTH=12></TD>
</TR>
<TR>
<TD ALIGN="right">
<EM>Pays</EM></TD>
<TD>
<INPUT TYPE=TEXT NAME="Contact_Pays" SIZE=25></TD>
</TR>
<TR>
<TD ALIGN="right">
<EM>Téléphone bureau</EM></TD>
<TD>
<INPUT TYPE=TEXT NAME="Contact_TelephoneBureau" SIZE=25 MAXLENGTH=25></TD>
</TR>
<TR>
<TD ALIGN="right">
<EM>Téléphone personnel</EM></TD>
<TD>
<INPUT TYPE=TEXT NAME="Contact_TelephoneDomicile" SIZE=25 MAXLENGTH=25></TD>
</TR>
<TR>
<TD ALIGN="right">
<EM>Courrier électronique</EM></TD>
<TD>
<INPUT TYPE=TEXT NAME="Contact_Email" SIZE=25></TD>
</TR>
<TR>
<TD ALIGN="right">
<EM>URL </EM></TD>
<TD>
<INPUT TYPE=TEXT NAME="Contact_URL " value="http://" SIZE=25 MAXLENGTH=25></TD>
</TR>
<TR>
<TD>
<EM>Publication de mon nom </EM>
</TD>
<FORM>
<TD align="right">
<font color="red">Oui, je l'accepte </font><INPUT TYPE=RADIO NAME="Contact_accept " VALUE="oui" checked></TD>
</TR>
<TR>
<TD> </TD>
<TD align="right">
<font color="red">Non, je ne l'accepte pas </font><INPUT TYPE=RADIO NAME="Contact_accept " VALUE="non"></TD>
</FORM>
</TR>
<TR>
<TD align="right">
<INPUT NAME="valider" TYPE=SUBMIT VALUE="Envoyer"></TD>
<TD align="right">
<INPUT NAME="annuler" TYPE=RESET VALUE="Effacer le contenu"></TD>
</TR>
</TABLE>
</BLOCKQUOTE>
</FORM>
Voici comment se compose mon formmail.php (entre balise php cela va de soit!) :
$TO = "toto@toto.tom";
$sujet = "Réponse au formulaire d'inscription - news IDI";
$qui_nom = $_POST['Contact_Prenom'];
$qui_prenom = $_POST['Contact_Nom'];
$titre = $_POST['Contact_Titre'];
$adresse1 = $_POST['Contact_Adresse'];
$adresse2 = $_POST['Contact_Adresse2'];
$ville = $_POST['Contact_Ville'];
$codepostal = $_POST['Contact_CodePostal'];
$pays = $_POST['Contact_Pays'];
$telbur = $_POST['Contact_TelephoneBureau'];
$teldom = $_POST['Contact_TelephoneDomicile'];
$siteurl = $_POST['Contact_URL'];
$acceptpubli = $_POST['Contact_accept'];
$refuspubli = $_POST['Contact_accept'];
$quimail = "From : " . $_POST['Contact_Email'] . $TO;
if (mail($TO, $sujet, $qui_nom, $qui_prenom, $titre, $adresse1, $adresse2, $ville, $codepostal, $pays, $telbur, $teldom, $siteurl, $acceptpubli, $refuspubli, $quimail))
header("Location : index.html");
else echo "erreur";
Enfin voici l'erreur soumise par mon navigateur :
Warning: mail() [function.mail]: Nombre de parametres incorrects in /mnt/106/sdb/f/5/m.mahlaoui/idi/formmail.php on line 20
Merci aux âmes sensibles à mon probleme de bien vouloir m'aider tant que faure se peut.
Autres pages sur : probleme code formulaire mail
Lassé par la pub ? Créez un compte
Dartyduck> Absoument pas ! la page result.html est imposé seulement si tu passes par le script perl fourni par Free. Mais ce n'est pas du tout obligatoire ! Et dans le cas présent, le code php est tout à fait général, même chez Free
smoon> Va lire la doc sur le fonction mail() : http://fr.php.net/manual/fr/function.mail.php
Tu verras qu'il faut concaténer tes variables qui doivent constituer le corps du message pour n'en former plus qu'une...
smoon> Va lire la doc sur le fonction mail() : http://fr.php.net/manual/fr/function.mail.php
Tu verras qu'il faut concaténer tes variables qui doivent constituer le corps du message pour n'en former plus qu'une...
Shino-Genin a dit :
smoon> Va lire la doc sur le fonction mail() : http://fr.php.net/manual/fr/function.mail.php
Tu verras qu'il faut concaténer tes variables qui doivent constituer le corps du message pour n'en former plus qu'une...
Salut,
je l'ai fait la premiere fois mais il m'a sorti une erreur ... que je n'ai pas retenu, alors que j'avais concaténé le corps du message !? !
Shino-Genin a dit :
Eh ben, c'est pourtant comme ça que ça marche. Donc à refaire et mets l'erreur ici si elle revient
Ceci est le mail que je reçois lorsque je soumets mon formulaire :
(Les adresses mails ont été modifiées, ne pas dire que ça ne peut marcher avec des adresses mail pareil !!!)
This is the mail system at host perso1.free.fr.
I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.
For further assistance, please send mail to <postmaster>
If you do so, please include this problem report. You can
delete your own text from the attached returned message.
The mail system
<toto@toto.tom>: host mx3.to.tom[65.54.245.72] said: 550 Your
e-mail was rejected for policy reasons on this gateway. Reasons for
rejection may be related to content such as obscene language, graphics, or
spam-like characteristics (or) other reputation problems. For sender
troubleshooting information, please go to <a href="http://postmaster.msn.tom" target="_blank">http://postmaster.msn.tom</a>.
Please note: if you are an end-user please contact your E-mail/Internet
Service Provider for assistance. (in reply to MAIL FROM command)
Voici mon code modifié, comme gentillement demandé
:(Les retours à la ligne ne sont là que pour faire de la place !)
<?php
$TO = "toto@toto.tom";
$sujet = "Réponse au formulaire d'inscription - news IDI";
$corps = $_POST['Contact_Prenom']."\n".$_POST['Contact_Nom']."\n".$_POST['Contact_Titre']."\n".
$_POST['Contact_Adresse']."\n".$_POST['Contact_Adresse2']."\n".$_POST['Contact_Ville']."\n".
$_POST['Contact_CodePostal']."\n".$_POST['Contact_Pays']."\n".
$_POST['Contact_TelephoneBureau']."\n".$_POST['Contact_TelephoneDomicile']."\n".
$_POST['Contact_URL']."\n".$_POST['Contact_refus']."\n".$_POST['Contact_accept'];
if (mail($TO, $sujet, $corps))
header("Location : index.html");
else echo "erreur";
?>
Shino-Genin a dit :
Pour ta variable $corps, essaie plutôt :
$corps = '';
foreach($_POST as $key=>$value)
{
$value = stripslashes($value);
$corps .= "$key : $value\n";
}
Voici le code apres modif :
<?php
$sujet = "Réponse au formulaire d'inscription - news IDI";
$corps = $_POST["Contact_Prenom"]."\n".$_POST["Contact_Nom"]."\n".$_POST["Contact_Titre"]
."\n".$_POST["Contact_Adresse"]."\n".$_POST["Contact_Adresse2"]."\n".$_POST["Contact_Ville"]
."\n".$_POST["Contact_CodePostal"]."\n".$_POST["Contact_Pays"]."\n".$_POST["Contact_TelephoneBureau"]
."\n".$_POST["Contact_TelephoneDomicile"]."\n".$_POST["Contact_URL"]."\n".$_POST["Contact_accept"];
foreach($_POST as $key=>$value)
{
$value = stripslashes($value);
$corps .= "$key : $value\n <br>";
}
$headers ='From: '.$_POST["Contact_Email"]."\n";
$headers .='Reply-To: '.$_POST["Contact_Email"]."\n";
$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';
$message ="\n".'<html>'."\n".'<head>'."\n".'<title>'."\n".$sujet."\n".'</title>'
."\n".'</head>'."\n".'<body bgcolor="blue">'."\n".'<font color="yellow" face="Comic Sans Ms">'."\n".'<H1>'."\n".'<br>'.$corps."\n".'</H1>'."\n".'</font>'."\n".'</body>'."\n".'</html>';
if(mail("toto@to.tom", $sujet, $message, $headers))
{
header("Location : index.html");
}
else
{
echo 'Le message n\'a pu être envoyé, désolé !!!';
}
?>
Et voici ce que ca donne en clair :
Le message a été envoyé<br>
<html>
<head>
<title>
Réponse au formulaire d'inscription - news IDI
</title>
</head>
<body bgcolor="blue">
<font color="yellow" face="Comic Sans Ms">
<H1>
<br>toto
titi
titi
ti
tititti
ti
ti
ti
tti
ttti
subject : formmail
<br>Contact_Prenom : toto
<br>Contact_Nom : titi
<br>Contact_Titre : titi
<br>Contact_Adresse : ti
<br>Contact_Adresse2 : tititti
<br>Contact_Ville : ti
<br>Contact_CodePostal : ti
<br>Contact_Pays : ti
<br>Contact_TelephoneBureau : tti
<br>Contact_TelephoneDomicile : ttti
<br>Contact_Email : toto@to.to
<br>Contact_URL_ : http://totototototo
<br>Contact_accept_ : oui
<br>valider : Envoyer
<br>
</H1>
</font>
</body>
</html>
What else ?
Il faut que tu vires ce qu'il y a dans ta variable $corps !
Comme indiqué précédemment tu remplaces $corps = 'toutes tes variables que tu as maintenant' par $corps = '' ; ça sert juste à l'initialiser
Mon code permet de faire la même chose que ta concaténation manuelle, mais de façon auto, en associant en plus le nom de ta variable postée à sa valeur, histoire de mieux t'y retrouver dans ton mail
Au final, ça donne ça :
Comme indiqué précédemment tu remplaces $corps = 'toutes tes variables que tu as maintenant' par $corps = '' ; ça sert juste à l'initialiser
Mon code permet de faire la même chose que ta concaténation manuelle, mais de façon auto, en associant en plus le nom de ta variable postée à sa valeur, histoire de mieux t'y retrouver dans ton mail
Au final, ça donne ça :
<?php
$sujet = "Réponse au formulaire d'inscription - news IDI";
$corps = '';
foreach($_POST as $key=>$value)
{
$value = stripslashes($value);
$corps .= "$key : $value\n <br>";
}
$headers ='From: '.$_POST["Contact_Email"]."\n";
$headers .='Reply-To: '.$_POST["Contact_Email"]."\n";
$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';
$message ="\n".'<html>'."\n".'<head>'."\n".'<title>'."\n".$sujet."\n".'</title>'
."\n".'</head>'."\n".'<body bgcolor="blue">'."\n".'<font color="yellow" face="Comic Sans Ms">'."\n".'<H1>'."\n".'<br>'.$corps."\n".'</H1>'."\n".'</font>'."\n".'</body>'."\n".'</html>';
if(mail("toto@to.tom", $sujet, $message, $headers))
{
header("Location : index.html" );
}
else
{
echo 'Le message n\'a pu être envoyé, désolé !!!';
}
?>
Voici ce que me renvoi le serveur mail censé recevoir mon mail !
This is the mail system at host perso1.free.fr.
I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.
For further assistance, please send mail to <postmaster>
If you do so, please include this problem report. You can
delete your own text from the attached returned message.
The mail system
<to@toto.tom>: host mx1.hotmail.com[IP] said: 550 Your
e-mail was rejected for policy reasons on this gateway. Reasons for
rejection may be related to content such as obscene language, graphics, or
spam-like characteristics (or) other reputation problems. For sender
troubleshooting information, please go to <a href="http://postmaster.msn.com" target="_blank">http://postmaster.msn.com</a>.
Please note: if you are an end-user please contact your E-mail/Internet
Service Provider for assistance. (in reply to MAIL FROM command)
Shino-Genin a dit :
Spammer par quoi ? Le serveur de Free ?Tu peux mettre ta propre adresse, ou une adresse créé sur un webmail pour l'occasion...
Je ne laiss pas mon adresse sur ce forum, C'EST POUR CA que je ne mets pas mon adresse ou celle à atteindre par le formulaire.
C'est aussi simple que ça !!!!!!!!!
Te fout pas de nous : le message d'erreur de Free est clair
Tu testes avec cet email pourri, c'est juste pour ça que ça marche pas... Essaie avec un vrai mail, tu verras que ce sera bien mieux !!!!!!!
Et ça n'a rien à voir avec l'email que tu laisses ici
Citation :
to@toto.tom>: host mx1.hotmail.com[IP]...Tu testes avec cet email pourri, c'est juste pour ça que ça marche pas... Essaie avec un vrai mail, tu verras que ce sera bien mieux !!!!!!!
Et ça n'a rien à voir avec l'email que tu laisses ici
J'ai trouvé plus buté que moi ma parole
marsien a écrit :
Eh ben, c'est pourtant comme ça que ça marche. Donc à refaire et mets l'erreur ici si elle revient
smoon a écrit :
Ceci est le mail que je reçois lorsque je soumets mon formulaire :
(Les adresses mails ont été modifiées, ne pas dire que ça ne peut marcher avec des adresses mail pareil !!!)
LE MOSSIEUUUUUUUUUUUUUU TEEEEE DIIIIIIIIIIIII
Je MOIDIFIE l'adresse mail sur mes post ICI, mais SINON j'ai UNE ADRESSE VALIIIIIIIDE pour mes TEST en REEL
PEUT ON PASSER au vrai probleme maintenant SVP
Citation :
marsien a écrit :
Eh ben, c'est pourtant comme ça que ça marche. Donc à refaire et mets l'erreur ici si elle revient
smoon a écrit :
Ceci est le mail que je reçois lorsque je soumets mon formulaire :
(Les adresses mails ont été modifiées, ne pas dire que ça ne peut marcher avec des adresses mail pareil !!!)
LE MOSSIEUUUUUUUUUUUUUU TEEEEE DIIIIIIIIIIIII
Je MOIDIFIE l'adresse mail sur mes post ICI, mais SINON j'ai UNE ADRESSE VALIIIIIIIDE pour mes TEST en REEL
PEUT ON PASSER au vrai probleme maintenant SVP
Il ne s'agit pas d'un problème de programmation, ni d'un problème sur les serveurs de FREE.
L'adresse email utilisée pour les tests est chez HOTMAIL.
host mx1.hotmail.com[IP] said: 550 Your
e-mail was rejected for policy reasons on this gateway. Reasons for
rejection may be related to content such as obscene language, graphics, or
spam-like characteristics (or) other reputation problems. For sender
troubleshooting information, please go to http://postmaster.msn.com.
Please note: if you are an end-user please contact your E-mail/Internet
Service Provider for assistance. (in reply to MAIL FROM command)
Or, depuis une quinzaine de jours les serveurs de messagerie Hotmail considèrent les mails de la plupart des serveurs SMTP de la planète comme étant du spam. Il faut tout simplement utiliser une autre adresse email pour faire les tests.
Pour en savoir plus, voir le lien : http://www.freshmango.com/articles/display/?articleID=2...
L'adresse email utilisée pour les tests est chez HOTMAIL.
host mx1.hotmail.com[IP] said: 550 Your
e-mail was rejected for policy reasons on this gateway. Reasons for
rejection may be related to content such as obscene language, graphics, or
spam-like characteristics (or) other reputation problems. For sender
troubleshooting information, please go to http://postmaster.msn.com.
Please note: if you are an end-user please contact your E-mail/Internet
Service Provider for assistance. (in reply to MAIL FROM command)
Or, depuis une quinzaine de jours les serveurs de messagerie Hotmail considèrent les mails de la plupart des serveurs SMTP de la planète comme étant du spam. Il faut tout simplement utiliser une autre adresse email pour faire les tests.
Pour en savoir plus, voir le lien : http://www.freshmango.com/articles/display/?articleID=2...
Lassé par la pub ? Créez un compte
- Contenus similaires :
- articlesProbleme avec un code java
- ForumQuel formulaire de mail utilisez vous
- ForumWampserver formulaire mail
- ForumProbleme de code css
- ForumEnvoi de formulaire par mail
- ForumEnvoi d'un formulaire par mail
- benchmarkProbleme code crysis
- ForumProbleme code barre
- ForumProbleme de code 10
- ForumProbleme formulaire mail et bouton radio
- Voir plus
Je croyais que c'était juste pour le code sur le forum...