Aller au contenu

Retour à la ligne en PHP


broadcastor

Sujets conseillés

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é par broadcastor
Lien vers le commentaire
Partager sur d’autres sites

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é par broadcastor
Lien vers le commentaire
Partager sur d’autres sites

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é...

Lien vers le commentaire
Partager sur d’autres sites

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 ....

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...