broadcastor Posté 19 Juillet 2006 Posté 19 Juillet 2006 (modifié) Bonjour à tous, je souhaiterai m'envoyer par mail des infos recupéré par formulaire. Je voudrais notament formater mes données de telle sorte que le nom et le prenom des personnes s'affichent l'un en dessous de l'autre dans le mail, et apres avoir essayé avec antislash n, ou r, ça ne marche pas , l'affichage a lieux sur la meme ligne Il y a surement une erreur de syntaxe, mais je la vois pas :s $message = "Nom : $nom \r\n";$message .= "Prénom : $prenom \r\n"; Si quelqu'un pouvait m'eclairer.... Modifié 19 Juillet 2006 par broadcastor
birou Posté 19 Juillet 2006 Posté 19 Juillet 2006 Slt! il faut essayer avec <br> sinon consulter les faqs
captain_torche Posté 19 Juillet 2006 Posté 19 Juillet 2006 En fait, ça va surtout dépendre de comment tu traites ta variable $message pour l'affichage dans ton mail. Tu envoies le mail en format texte, ou HTML ? On peut avoir un peu de code supplémentaire ?
broadcastor Posté 19 Juillet 2006 Auteur Posté 19 Juillet 2006 (modifié) je l'envois en format texte; voici un peu plus de code, mais pour le moment je voulais juste faire un echo de $message: $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/plain; charset=iso-8859-1\r\n"; $headers .= "From: $nom <$email>\r\nReply-to : $nom <$email>\nX-Mailer:PHP"; $subject="super sujet"; $destinataire="destinataire_AT_destinataire.com"; $message = "Nom : $nommedia\r\n";$message .= "Prénom : $prenommedia\n"; if (mail($destinataire,$subject,$message,$headers)) { $_SESSION['msg'] = $prenom.' '.$nom.' : votre formulaire a bien été envoyé';} else { $_SESSION['msg'] = 'Il y a eu un probleme lors de l\'envois de votre formulaire'; } _AT_v4np13: ca na pas marché, merci pour ton aide, merci aux autres Modifié 19 Juillet 2006 par broadcastor
captain_torche Posté 19 Juillet 2006 Posté 19 Juillet 2006 Si tu fais un echo (dans ta page), c'est normal que ça foire (tant que ce n'est pas précisé, la page affichée est en text/html par défaut). Essaye de l'entourer avec les balises <pre> Mais sinon, dans le mail, c'est bon ?
TheRec Posté 19 Juillet 2006 Posté 19 Juillet 2006 Bonjour, Dans le contexte d'un courriel en texte brut, "\n" (Linux), "\r\n" (Windows) et "\n\r" (Mac) représentent un retour à la ligne comme tu l'entends. Lorsque consulte un document (dans un fichier envoyé par un serveur HTTP, comme Apache) sans préciser que ce que tu veux envoyer est du texte brute, le document est interprété comme un fichier HTML et dans ce cas les retours de lignes ne signifient rien. Comme l'a dit birou, si tu veux un retour à la ligne en HTML c'est avec <br/> que cela est possible. Comme tu souhaites envoyer un courriel en texte brute tu ne va pas utiliser <br/> (qui ne signifie rien hors du contexte HTML). Pour afficher les résultats comme le destinataire du courriel va le recevoir, tu peux utiliser cette méthode : <pre><?php echo $message; ?></pre> Dans la balises <pre> le contenu est interprété comme s'il s'agissait d'un fichier texte et donc les retour à la ligne sont effectifs. Tu peux aussi opter pour une autre solution qui consiste à indiquer au navigateur (par un en-tête HTTP) que tu souhaites interpréter tout le contenu reçu au format texte brut : <?php header("Content-type: text/plain"); ?> Bonne continuation. EDIT: Grillé...
broadcastor Posté 19 Juillet 2006 Auteur Posté 19 Juillet 2006 Alors, avec le <br> ça marche. Maintenant, je me pose une question: le <br> marche parce que je fais un echo dans le code, mais apres dans le mail, est ce qu'il marchera toujours. Inversement, si antislash N ne marche pas en echo, peut etre marchera t'il dans le mail ....
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant