| | cortobm | Posté le 28/01/2008 @ 13:06 | Petit astucien
15 Messages
| Salut à tous, J'ai un petit problème avec un formulaire de contact PHP, j'ai 5 champs de données que voici : - Nom -E-mail -Telephone - Titre - Message Et quand j'envoie un mail avec, seul le message apparait dans le mail, l'adresse mail apparait en expediteur ainsi que le titre. Mais les champs Nom et telephone n'apparaissent pas. J'ai bien essayé de modifier le code php, mais ça ne fonctionne plus ensuite. Quelqu'un pourrait-il m'indiquer quelles lignes modifier dans le code suivant pour que dans les mails reçus, tous les champs apparaissent dans le contenu du mail avant le message, un peu de la sorte : NOM : "donnée nom" Adresse mail : "donnée mail" Telephone "donnée telephone" Message Merci d'avance ! <?php // Dans la ligne qui suit, remplacer webmaster@domaine.tld par l'adresse email du webmaster, à laquelle les messages devront être envoyés $email_webmaster = "monadresse@truc.com"; // === traitement des données du formulaire ============================================================ if (isset($_POST["envoyer"])){ // le formulaire a été soumis $etat = "erreur"; // Valeur par défaut. Prendra la valeur "ok" s'il n'y a pas d'erreur // --- mise en forme des champs saisis dans le formulaire lors de sa soumission --- if (isset($_POST["email_expediteur"])) { $_POST["email_expediteur"]=trim(stripslashes($_POST["email_expediteur"])); } if (isset($_POST["nom"])) { $_POST["nom"]=trim(stripslashes($_POST["nom"])); } if (isset($_POST["numero_telephone"])) { $_POST["numero_telephone"]=trim(stripslashes($_POST["numero_telephone"])); } if (isset($_POST["titre"])) { $_POST["titre"]=trim(stripslashes($_POST["titre"])); } if (isset($_POST["message"])) { $_POST["message"]=trim(stripslashes($_POST["message"])); } // --- test de la validité des champs saisis --- if (empty($_POST["email_expediteur"])) { // il manque l'email de l'expéditeur $erreur="Saisissez votre adresse email..."; } if (empty($_POST["nom"])) { // il manque l'email de l'expéditeur $erreur="Saisissez votre nom..."; } elseif (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["email_expediteur"])){ // l'adresse e-mail n'est pas valide $erreur="Votre adresse e-mail n'est pas valide..."; } elseif (empty($_POST["message"])) { // le message est vide $erreur="Saisissez un message..."; } else { // --- tous les champs sont correctement remplis: on pourra envoyer le mail --- $etat="ok"; } } else { // --- le formulaire n'a pas été soumis --- $etat="attente"; } // === fin de traitement des données du formulaire ======================================================= ?> <?php if ($etat!="ok"){// le formulaire n'a pas été soumis, ou soumis avec une erreur if ($etat=="erreur"){ //le formulaire a été soumis avec une erreur echo "<p><strong>".$erreur."</strong></p>\n"; // afficher le message d'erreur } ?>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>"> <p> </p> <table> <tr><td> <span class="Style8">* : champs obligatoires pour envoyer un mail</span></td></tr></table> <table>
<tr> <td><div align="left"><span class="Style8">Votre Nom : *</span></div></td> <td><input type="text" size="40" name="nom" id="nom" value="<?php if (!empty($_POST["nom"])) { // l'adresse email de l'expéditeur a été saisie: la réafficher echo htmlspecialchars($_POST["nom"],ENT_QUOTES); } ?>" /></td></tr> <tr><td> <div align="left">
<label for="email_expediteur"><span class="Style8">Votre Email : *</span></td> <td> <input type="text" size="40" name="email_expediteur" id="email_expediteur" value="<?php if (!empty($_POST["email_expediteur"])) { // l'adresse email de l'expéditeur a été saisie: la réafficher echo htmlspecialchars($_POST["email_expediteur"],ENT_QUOTES); } ?>" /></div></td></tr> <tr><td> <div align="left">
<label for="email_expediteur"><span class="Style8">Telephone :</span></td> <td> <input type="text" size="40" name="numero_telephone" id="numero_telephone" value="<?php if (!empty($_POST["numero_telephone"])) { // l'adresse email de l'expéditeur a été saisie: la réafficher echo htmlspecialchars($_POST["numero_telephone"],ENT_QUOTES); } ?>" /></div></td></tr> <tr><td><label for="titre"> <div align="left"><span class="Style8">Titre du message :</span></div> </label></td> <td><input type="text" size="40" name="titre" id="titre" value="<?php if (!empty($_POST["titre"])) { // le titre du message a été saisi: le réafficher echo htmlspecialchars($_POST["titre"],ENT_QUOTES); } ?>" /></td></tr><br /><tr><td></td></tr> <tr><td colspan=2><br /><div align="left"><label for="message"><span class="Style8"><span class="Style8">Message : *</div></span></label> <br> <textarea name="message" id="message" cols="50" rows="5"><?php if (isset($_POST["message"])) { // le message a été saisi: le réafficher echo htmlspecialchars($_POST["message"],ENT_QUOTES); } ?></textarea> </td> </tr> </table>
<p><input type="submit" name="envoyer" value="Envoyer" /> </p> </form> <?php } else { // le formulaire a été soumis sans erreur, on envoie le mail $entete = "From: ".$_POST["email_expediteur"]." <".$_POST["email_expediteur"].">\n"; $entete .= "MIME-Version: 1.0"; if (@mail($email_webmaster,$_POST["titre"],$_POST["message"],$entete)){ // mail envoyé echo "Votre message a été envoyé.<br />\n"; echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Envoyer un autre message...</a>\n"; } else { // erreur lors de l'envoi du mail echo "Un problème s'est produit lors de l'envoi du message.\n"; echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez...</a>\n"; } } ?>
| | |
| |
| Publicité |
|
| | fox54270 | Posté le 29/01/2008 à 15:48 | Petit astucien
163 Messages
| voila j'ai couriger ton code et j'ai ajouter qulque amélioration tu rocopier le code suivant et tu le nom comme tu veux mais avec l'extention .php exmple contact.php les lignes en rouge tu les modifier avec tes donner a toi <?php // Couleur du texte des champs si erreur saisie utilisateur $color_font_warn="#FF0000"; // Couleur de fond des champs si erreur saisie utilisateur $color_form_warn="#FFCC66"; // Ne rien modifier ci-dessous si vous n’êtes pas certain de ce que vous faites ! if(isset($_POST['submit'])){ $erreur=""; // Nettoyage des entrées while(list($var,$val)=each($_POST)){ if(!is_array($val)){ $$var=strip_tags($val); }else{ while(list($arvar,$arval)=each($val)){ $$var[$arvar]=strip_tags($arval); } } } // Formatage des entrées $f_1=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_1))); $f_2=strip_tags(trim($f_2)); $f_3=trim(eregi_replace("[^0-9\ +]", "", $f_3)); $f_4=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_4))); // Verification des champs if(strlen($f_1)<2){ $erreur.="<li><span class='txterror'>Le champ « Nom » est vide ou incomplet.</span>"; $errf_1=1; } if(strlen($f_2)<2){ $erreur.="<li><span class='txterror'>Le champ « E-mail » est vide ou incomplet.</span>"; $errf_2=1; }else{ if(!ereg('^[-!#$%&\\'*+\./0-9=?A-Z^_`a-z{|}~]+'. '@'. '[-!#$%&\\'*+\/0-9=?A-Z^_`a-z{|}~]+\.'. '[-!#$%&\\'*+\./0-9=?A-Z^_`a-z{|}~]+$', $f_2)){ $erreur.="<li><span class='txterror'>La syntaxe de votre adresse e-mail n'est pas correcte.</span>"; $errf_2=1; } } if(strlen($f_5)<2){ $erreur.="<li><span class='txterror'>Le champ « Message » est vide ou incomplet.</span>"; $errf_5=1; } if($erreur==""){ // Création du message $titre="Message de votre site"; $tete="From:Site@Toto.fr\n"; $corps.="Nom : ".$f_1."\n"; $corps.="E-mail : ".$f_2."\n"; $corps.="Telephone : ".$f_3."\n"; $corps.="Titre : ".$f_4."\n"; $corps.="Message : ".$f_5."\n"; if(mail("toto@toto.fr", $titre, stripslashes($corps), $tete)){ $ok_mail="true"; }else{ $erreur.="<li><span class='txterror'>Une erreur est survenue lors de l'envoi du message, veuillez refaire une tentative.</span>"; } } } ?> <!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>Document sans nom</title> <style type="text/css" media="screen"><!-- INPUT { color: #000; font-size: 11px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: #EEEEEE } SELECT { color: #000; font-size: 11px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: #EEEEEE } TEXTAREA { color: #000; font-size: 11px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: #EEEEEE } .txterror { color: black; font-size: 11px; font-family: Verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular } .txtform { color: black; font-size: 12px; font-family: Verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular } --></style> </head>
<body> <? if($ok_mail=="true"){ ?> <table width='100%' border='0' cellspacing='1' cellpadding='1'> <tr><td><span class='txtform'>Le message ci-dessous nous a bien été transmis, et nous vous en remercions.</span></td></tr> <tr><td> </td></tr> <tr><td><tt><?echo nl2br(stripslashes($corps));?></tt></td></tr> <tr><td> </td></tr> <tr><td><span class='txtform'>Nous allons y donner suite dans les meilleurs délais.<br>A bientôt.</span></td></tr> </table> <? }else{ ?> <form action='<? echo $PHP_SELF ?>' method='post' name='Form'> <table width='100%' border='0' cellspacing='1' cellpadding='1'> <? if($erreur){ ?><tr><td colspan='2' bgcolor='red'><span class='txterror'><font color='white'><b> ERREUR, votre message n'a pas été transmis</b></font></span></td></tr><tr><td colspan='2'><ul><?echo$erreur?></ul></td></tr><?}?> <tr><td colspan='2'><span class='txterror'>Les champs marqué d'un * sont obligatoires</span></td></tr> <tr><td align='right' width='30%'><span class='txtform'>Nom* :</span></td><td><input type='text' style='width:200 <?if($errf_1==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_1' value='<?echo stripslashes($f_1);?>' size='24' border='0'></td></tr> <tr><td align='right' width='30%'><span class='txtform'>E-mail* :</span></td><td><input type='text' style='width:200 <?if($errf_2==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_2' value='<?echo stripslashes($f_2);?>' size='24' border='0'></td></tr> <tr><td align='right' width='30%'><span class='txtform'>Telephone :</span></td><td><input type='text' style='width:200 <?if($errf_3==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_3' value='<?echo stripslashes($f_3);?>' size='24' border='0'></td></tr> <tr><td align='right' width='30%'><span class='txtform'>Titre :</span></td><td><input type='text' style='width:200 <?if($errf_4==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_4' value='<?echo stripslashes($f_4);?>' size='24' border='0'></td></tr> <tr><td align='right' width='30%'><span class='txtform'>Message* :</span></td><td><textarea style='width:360 <?if($errf_5==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_5' rows='6' cols='40'><?echo$f_5?></textarea></td></tr> <tr><td align='right' width='30%'></td><td><input type='submit' name='submit' value='Envoyer' border='0'> <input type="reset" border="0" value="Effacer" name="reset"/> </td> </tr> </table> </form> <? } ?> </body> </html>
| | | |
| | Haut de la page |
| | Inscrivez-vous ! |
- Posez vos questions
- Résolvez vos problèmes
- Aidez les autres
- Participez et créez vos discussions
- Dialoguez en privé avec d'autres membres
- Suivez vos sujets préférés
- Affichez les signatures des membres
|
|