Jump to content
Sign in to follow this  
broadcastor

Retour à la ligne en PHP

Rate this topic

Recommended Posts

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

Edited by broadcastor

Share this post


Link to post
Share on other sites

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 ?

Share this post


Link to post
Share on other 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

Edited by broadcastor

Share this post


Link to post
Share on other sites

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 ?

Share this post


Link to post
Share on other 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é...

Share this post


Link to post
Share on other 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 ....

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...