silv1 Posté 11 Octobre 2007 Posté 11 Octobre 2007 (modifié) Bonjour! Voilà, en fait je viens de suivre un tutorial sur le net pour apprendre à créer un formulaire dont les données sont ensuite envoyées sur une adresse mail. J'ai dont 2 script: le premier est inclu dans ma page html tandis que le deuxième est sur un fichier php Lorsque je reprend textuellement le script proposé en exemple dans ce tutorial, tout marche nickel. Je reçois bel et bien un mail avec les données des différents champs du formulaire. Mais lorsque j'ai voulu le personnaliser les choses ont commencer à se gâter... Je recois désormais un mail mais seul quelques données du formulaires appraissent mais pas l'ensemble. J'ai beau modifier le script dans tous les sens c'est toujours la même chose. A chaque fois il manque des données dans le mail. Voici les 2 codes: Tout d'abord le code du formulaire: <form method="post" action="traitement2.php"><p class="titre">Coordonnées</p><fieldset id="coordonnees" style="border: 1px solid #FFFFFF"> <legend> </legend> <p id="civilite"><label>Civilité</label><span style="font-weight: 600; color: red">*</span><label> : </label> <input type="radio" name="civilite" value="M." />M. <input type="radio" name="civilite" value="Mlle" />Mlle <input type="radio" name="civilite" value="Mme" />Mme </p> <p id="civilite"> </p> <label>Nom</label><span style="font-weight: 600; color: red">*</span><label> : </label> <input type="text" name="nom" size="30" /><p><br /> <label>Adresse</label><span style="font-weight: 600; color: red">*</span><label> : </label> <input type="text" name="adresse" size="30" /></p> <p><br /> <label>Code postal</label><span style="font-weight: 600; color: red">*</span><label> : </label> <input type="text" name="codepostal" size="30" /></p> <p><br /> <label>Ville : </label> <input type="text" name="ville" size="30" /></p> <p><br /> <label>Pays : </label> <select name="pays"> <option value="france">France</option> <option value="belgique">Belgique</option> <option value="suisse">Suisse</option> </select> </p> <p> </p> <label>Adresse e-mail</label><span style="font-weight: 600; color: red">*</span><label> : </label> <input type="text" name="adressemail" size="30" /><p> </p> </p><p id="habitation"><label>Type d'habitation</label><span style="font-weight: 600; color: red">*</span><label> : </label> <input type="radio" name="habitation" value="Maison" />Maison <input type="radio" name="habitation" value="Appartement" />Appartement <input type="radio" name="habitation" value="Entreprise" />Entreprise </p> <p id="habitation"> </p><p id="milieu"><label>Milieu</label><span style="font-weight: 600; color: red">*</span><label> : </label> <input type="radio" name="milieu" value="Urbain" />Urbain <input type="radio" name="milieu" value="Semi-urbain" />Semi-urbain <input type="radio" name="milieu" value="Rural" />Rural </p><p id="milieu"> </p> <label>Consommation annuelle (en KWH)</label><span style="font-weight: 600; color: red">*</span><label> : </label> <input type="text" name="consommation" size="30" /><p><br /> <p id="milieu"> </p> <p> </p> <p id="interets"><label>Centres d'intérêts : </label> <input type="checkbox" name="interets[]" value="sport" />Sport <input type="checkbox" name="interets[]" value="cinema" />Cinéma</p> <p id="interets"><br /> <input type="checkbox" name="interets[]" value="internet" />Internet <input type="checkbox" name="interets[]" value="voyages" />Voyages </p></fieldset><p class="titre">Message</p><fieldset id="message" style="border: 1px solid #FFFFFF"> <legend> </legend> <textarea name="comments" rows="5" cols="40"></textarea></fieldset><p id="buttons"> <input type="submit" value="Envoyer" /> <input type="reset" value="Recommencer" /></p></form> Et voici le fichier php que j'ai nomé "traitement2" <?php$msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>";$msg_ok = "Votre demande a bien été prise en compte.";$message = $msg_erreur;define('MAIL_DESTINATAIRE','monadresse_AT_gmail.com'); define('MAIL_SUJET','Message du formulaire du site *** ***'); // vérification des champs if (empty($_POST['civilite'])) $message .= "Votre civilité<br/>";if (empty($_POST['nom'])) $message .= "Votre nom<br/>";if (empty($_POST['adresse'])) $message .= "Votre adresse<br/>";if (empty($_POST['codepostal'])) $message .= "Votre code postal<br/>";if (empty($_POST['ville'])) $message .= "Votre ville<br/>";if (empty($_POST['adressemail'])) $message .= "Votre adresse mail<br/>";if (empty($_POST['habitation'])) $message .= "Votre habitation<br/>";if (empty($_POST['milieu'])) $message .= "Votre milieu<br/>";if (empty($_POST['comments'])) $message .= "Votre message<br/>";// si un champ est vide, on affiche le message d'erreur if (strlen($message) > strlen($msg_erreur)) { echo $message;// sinon c'est ok } else {foreach($_POST as $index => $valeur) {$$index = stripslashes(trim($valeur));}$interets = $_POST['interets'];$sqlinterets = '';for ($i=0; $i<count($interets); $i++){$sqlinterets .= $interets[$i];$sqlinterets .= ', ';}//Préparation de l'entête du mail:$mail_entete = "MIME-Version: 1.0\r\n";$mail_entete .= "From: {$_POST['nom']} " ."<{$_POST['email']}>\r\n";$mail_entete .= 'Reply-To: '.$_POST['email']."\r\n";$mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';$mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";$mail_entete .= 'X-Mailer:PHP/' . phpversion()."\r\n";// préparation du corps du mail$mail_corps = "Message de : $civilite $nom\n";$mail_corps .= "Adresse : $adresse, $codepostal $ville, $pays\n";$mail_corps .= "Adresse e-mail : $adressemail\n";$mail_corps = "Type d'habitation : $habitation\n";$mail_corps = "Milieu : $milieu\n";$mail_corps .= "Concommation annuelle (en KWH) : $consommation\n";$mail_corps .= "Ses centres d'intérêts : $sqlinterets\n\n\n";$mail_corps .= $comments;// envoi du mailif (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete)) { //Le mail est bien expédié echo $msg_ok;} else { //Le mail n'a pas été expédié echo 'Une erreur est survenue lors de l\'envoi du formulaire par email';}}?> Dans le mail que je reçois, seul le milieu, la consommation annuelle et les centres d'intéret apparaissent Est ce que par quelqun pourrait me donner un coup de main en regardant ce qui ne va pas? Je vous remerci d'avance pour votre aide! Modifié 12 Novembre 2007 par Dan
celtic Posté 12 Octobre 2007 Posté 12 Octobre 2007 Salut, dans ta page de traitement , il manque "." devant =: $mail_corps = "Message de : $civilite $nom\n"; $mail_corps .= "Adresse : $adresse, $codepostal $ville, $pays\n"; $mail_corps .= "Adresse e-mail : $adressemail\n"; $mail_corps = "Type d'habitation : $habitation\n"; <===== ici $mail_corps = "Milieu : $milieu\n"; <===== ici $mail_corps .= "Concommation annuelle (en KWH) : $consommation\n"; $mail_corps .= "Ses centres d'intérêts : $sqlinterets\n\n\n"; $mail_corps .= $comments;
silv1 Posté 12 Octobre 2007 Auteur Posté 12 Octobre 2007 Ah d'accord!Merci beaucoup celtic! Je vais tout de suite faire les modifs pour voir ci ça marche maintenant!
silv1 Posté 12 Octobre 2007 Auteur Posté 12 Octobre 2007 Voilà maintenant ça marche! Juste une petite question... Comment se fait t-il qu'on ne met pas de ".=" devant $mail_corps = "Message de : $civilite $nom\n"; Encore merci celtic!
captain_torche Posté 12 Octobre 2007 Posté 12 Octobre 2007 Tout simplement parce que la formulation .= signifie "ajouter à la variable existante", alors que le simple "=" signifie "créer une variable ou écraser le contenu de la variable".
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant