dayassine Posté 28 Juin 2007 Posté 28 Juin 2007 (modifié) Bonjour, Besoin d'un petit aide svp, j'ai pris le formulaire de contact sur le hub et je voulais ajouter des champs <?php// Dans la ligne qui suit, remplacer webmaster_AT_domaine.tld par l'adresse email du webmaster, à laquelle les messages devront être envoyés$email_webmaster = "dayassine_AT_gmail.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["prenom"])) { $_POST["prenom"]=trim(stripslashes($_POST["prenom"])); } if (isset($_POST["societe"])) { $_POST["societe"]=trim(stripslashes($_POST["societe"])); } if (isset($_POST["adresse"])) { $_POST["adresse"]=trim(stripslashes($_POST["adresse"])); } if (isset($_POST["postal"])) { $_POST["postal"]=trim(stripslashes($_POST["postal"])); } if (isset($_POST["tel"])) { $_POST["tel"]=trim(stripslashes($_POST["tel"])); } if (isset($_POST["fax"])) { $_POST["fax"]=trim(stripslashes($_POST["fax"])); } 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..."; } 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 =======================================================?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xml:lang="fr" lang="fr" xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Formulaire de contact</title></head><body><h1>Devis gratuit</h1><?phpif ($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><label for="email_expediteur">Votre adresse e-mail *:</label><br /> <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); } ?>" /> </p> <p><label for="nom">Nom :</label><br /> <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); } ?>" /> </p> <p> <label for="prenom">Prénom :</label> <br /> <input type="text" size="40" name="prenom" id="prenom" value="<?php if (!empty($_POST["prenom"])) {// l'adresse email de l'expéditeur a été saisie: la réafficher echo htmlspecialchars($_POST["prenom"],ENT_QUOTES); } ?>" /> </p> <p> <label for="societe">Société :</label> <br /> <input type="text" size="40" name="societe" id="societe" value="<?php if (!empty($_POST["societe"])) {// l'adresse email de l'expéditeur a été saisie: la réafficher echo htmlspecialchars($_POST["societe"],ENT_QUOTES); } ?>" /> </p> <p><label for="adresse">Adresse :</label><br /> <textarea name="adresse" id="adresse" cols="40" rows="5"><?php if (isset($_POST["adresse"])) {// le message a été saisi: le réafficher echo htmlspecialchars($_POST["adresse"],ENT_QUOTES); } ?></textarea> </p> <p><label for="postal">Code postal :</label><br /> <input type="text" size="40" name="postal" id="postal" value="<?php if (!empty($_POST["postal"])) {// l'adresse email de l'expéditeur a été saisie: la réafficher echo htmlspecialchars($_POST["postal"],ENT_QUOTES); } ?>" /> </p> <p> <label for="tel">Téléphone :</label> <br /> <input type="text" size="40" name="tel" id="tel" value="<?php if (!empty($_POST["tel"])) {// l'adresse email de l'expéditeur a été saisie: la réafficher echo htmlspecialchars($_POST["tel"],ENT_QUOTES); } ?>" /> </p> <p><label for="fax">Fax :</label><br /> <input type="text" size="40" name="fax" id="postal" value="<?php if (!empty($_POST["fax"])) {// l'adresse email de l'expéditeur a été saisie: la réafficher echo htmlspecialchars($_POST["fax"],ENT_QUOTES); } ?>" /> </p> <p><label for="message">Message (obligatoire):</label><br /> <textarea name="message" id="message" cols="40" rows="5"><?php if (isset($_POST["message"])) {// le message a été saisi: le réafficher echo htmlspecialchars($_POST["message"],ENT_QUOTES); } ?></textarea> </p> <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["nom"],$_POST["prenom"],$_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"; }}?></body></html> voila quand le code et je pense que l'erreur vient de la if (@mail($email_webmaster,$_POST["nom"],$_POST["prenom"],$_POST["message"],$entete)) puisque quand j'ajoute mes autres champs comme nom, prenom ... ca me donne erreur Si quelqu'un voit d'ou vient mon probleme. Merci Modifié 28 Juin 2007 par captain_torche Pour présenter des codes longs, il vaut mieux utiliser la balise CODEBOX (captain_torche, modérateur)
theprogrammeur Posté 28 Juin 2007 Posté 28 Juin 2007 (modifié) La fonction mail(); ne prend pas autant d'arguments. C'est juste mail('moi_AT_ego.com', 'mon sujet', 'mon message'); EDIT:Utilise les codebox la prochaine fois! Modifié 28 Juin 2007 par theprogrammeur
dayassine Posté 28 Juin 2007 Auteur Posté 28 Juin 2007 Merci d'avoir changer, je pensais l'avoir mis. Est donc comment je pourrai faire cela? Merci
captain_torche Posté 28 Juin 2007 Posté 28 Juin 2007 Effectivement, tu utilises mal la fonction mail() de PHP. Elle devrait ressembler à ça : mail($email_webmaster,'sujet',$_POST["message"],$entete) Les nom et prénom doivent soit être rajoutés au message, soit dans les en-têtes (pour compléter le From actuel, par exemple). Par contre, tel qu'il est utilisé, ton formulaire n'est pas sécurisé : on peut s'en servir pour envoyer du spam. Si tu es anglophone, je te conseille de lire cet article : Email injection
dayassine Posté 28 Juin 2007 Auteur Posté 28 Juin 2007 Merci pour vos conseils, ca fait rien c'est juste un test et mieux connaitre les methodes d'utilisation.. voila j'ai testé celui la qui marche tres bien. mais je voulais juste savoir comment faire aprés l'envoi de se rédiriger vers la page d'accueil par exemple. <?phpif($Click == 'on') { // On a donc cliqué sur "Envoyer" $MonEmail = 'dayassine_AT_gmail.com' ; if(trim($nom) == '') $Erreur['nom'] = 'Veuillez saisir votre nom' ; if(trim($prenom) == '') $Erreur['prenom'] = 'Veuillez saisir votre prénom' ; if(trim($societe) == '') $Erreur['societe'] = 'Veuillez saisir le nom de votre société' ; if(trim($adresse) == '') $Erreur['adresse'] = 'Veuillez saisir votre adresse' ; if(trim($postal) == '') $Erreur['postal'] = 'Veuillez saisir votre code postal' ; if(trim($tel) == '') $Erreur['tel'] = 'Veuillez saisir votre N° de téléphone' ; if(trim($fax) == '') $Erreur['fax'] = 'Veuillez saisir votre N° de fax' ; if (ereg ('@', $email)) { // Vérification de l'email $domaine = split ('@', $email, 2); $domaine = str_replace('>', '', trim ($domaine[1])); if (!checkdnsrr($domaine) OR $domaine == '') $Erreur["email"] = 'L\'email saisie n\'existe pas !' ; } else $Erreur['email'] = 'Veuillez saisir votre email correctement' ; if(trim($commentaire) == '') $Erreur['commentaire'] = 'Veuillez saisir votre commentaire' ; if(!isset($Erreur)) { // il n'y a pas d'erreur $SujetEmail = "Formulaire en ligne" ; // sujet du formulaire $MsgEmail = "Bonjour,\n" // contenu du email ."Un visiteur vient de remplir votre devis en ligne,\n" ."------------------ Contenu ------------------\n" ."Nom : ".$nom."\n" ."Prénom : ".$prenom."\n" ."Société : ".$societe."\n" ."Adresse : ".$adresse."\n" ."Code postal : ".$postal."\n" ."Téléphone : ".$tel."\n" ."Fax : ".$fax."\n" ."Email : ".$email."\n" ."Commentaire : ".$commentaire."\n" ."----------------------------------------------\n" ."" ; $HeaderEmail = "From: ".$email."" ; mail($MonEmail, $SujetEmail, $MsgEmail, $HeaderEmail); //envoi d'un email au client $Confirmation= TRUE ; // création pour écrire un message de confirmation } // fermeture de (il n'y a pas d'erreur)} // fermture de (On a donc cliqué sur "Envoyer")?><FORM ACTION="<?php echo $PHP_SELF ; ?>" METHOD="post" NAME="MonFormulaire"><INPUT TYPE="hidden" NAME="Click" VALUE="on"><TABLE BORDER=1 WIDTH="100%" CELLSPACING=0 CELLPADDING=1> <?php if($Confirmation == TRUE) { // Il y a une confirmation echo '<TR>' .'<TD COLSPAN=2>Le Formulaire a été envoyé avec succés...</TD>' .'</TR>' ; } if($Erreur['nom'] !='') { // le champ nom est vide echo '<TR>' .'<TD></TD>' .'<TD>'.$Erreur['nom'].'</TD>' .'</TR>' ; } ?> <TR> <TD>Nom* : </TD> <TD><INPUT TYPE="text" NAME="nom" VALUE="<?php echo $nom ; ?>" SIZE="20"></TD> </TR> <?php if($Erreur['prenom'] !='') { // le champ prénom est vide echo '<TR>' .'<TD></TD>' .'<TD>'.$Erreur['prenom'].'</TD>' .'</TR>' ; } ?> <TR> <TD>Prénom* : </TD> <TD><INPUT TYPE="text" NAME="prenom" VALUE="<?php echo $prenom ; ?>" SIZE="20"></TD> </TR> <?php if($Erreur['email'] !='') { // le champ email est vide echo '<TR>' .'<TD></TD>' .'<TD>'.$Erreur['email'].'</TD>' .'</TR>' ; } ?> <TR> <TD>Société :</TD> <TD><input type="text" name="societe" value="<?php echo $societe ; ?>" size="20" /></TD> </TR> <TR> <TD>Adresse :</TD> <TD><textarea name="adresse" rows="5" cols="30"><?php echo $adresse ; ?></textarea></TD> </TR> <TR> <TD>Code postal :</TD> <TD><input type="text" name="postal" value="<?php echo $postal ; ?>" size="20" /></TD> </TR> <TR> <TD>Tél :</TD> <TD><input type="text" name="tel" value="<?php echo $tel ; ?>" size="20" /></TD> </TR> <TR> <TD>Fax :</TD> <TD><input type="text" name="fax" value="<?php echo $fax ; ?>" size="20" /></TD> </TR> <TR> <TD>Email* : </TD> <TD><INPUT TYPE="text" NAME="email" VALUE="<?php echo $email ; ?>" SIZE="20"></TD> </TR> <?php if($Erreur['commentaire'] !='') { // le champ commentaire est vide echo '<TR>' .'<TD></TD>' .'<TD>'.$Erreur['commentaire'].'</TD>' .'</TR>' ; } ?> <TR> <TD>Commentaire* : </TD> <TD><TEXTAREA NAME="commentaire" ROWS="5" COLS="30"><?php echo $commentaire ; ?></TEXTAREA></TD> </TR> <TR> <TD></TD> <TD><INPUT TYPE="submit" VALUE="Envoyer"></TD> </TR> <TR> <TD COLSPAN=2>* Champs Obligatoires</TD> </TR></TABLE></FORM> Merci
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant