Rechercher : dans
Par :

Sauts de lignes PHP

Dernière réponse le 9 jun 2008 à 10:46:41 Zoubsy, le 6 jun 2008 à 18:48:33 
 Signaler ce message aux modérateurs

Bonjour,
J'ai un formulaire ou l'utilisateur peut m'envoyer du texte par mail. Cependant, les sauts de lignes ne sont pas respectés, je reçois le texte sur une seule ligne. Je voudrais savoir comment remédier a ce problème. Je précise que je débute vraiment en php.

Voici les codes :
HTML

<form method="post" action="envoi.php">
 
   <fieldset>
       <legend><strong>Coordonnées</strong></legend>-->
 
       <label for="nom">Nom</label><br />
       <input type="text" name="nom" id="nom" /><br />
 
       <label for="email">E-mail</label><br />
       <input type="text" name="email" id="email" /><br />
   </fieldset>
 
   <fieldset>
       <p>
           <label for="idee">Texte</label><br />
           <textarea name="idee" id="idee" cols="40" rows="4" tabindex="80"></textarea>
       </p>
   </fieldset>

   <p>
       <input type="submit" /> <input type="reset" />
   </p>


</form>

PHP
<?php

$to="monadresse";
$subject='message envoyé';
$message="Message envoyé par : $_POST[email]<br>Voici son message: <br/>$_POST[idee]";
$headers="MIME-Version:1.0\r\n";
$headers="Content-type:text/html;charset=iso-8859-1\r\n";

mail($to,$subject,$message,$headers);

echo"
<script language='javascript'>

alert('Le message à bien été envoyé, merci.');

</script>
";

?> 


Merci d'avance !
Configuration: Linux
Firefox 3.0

Meilleures réponses pour « Sauts de lignes PHP » dans :
PHP - Les fichiers VoirLa gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier...
PHP - Les variables VoirConcept de variable avec PHP Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage PHP peuvent être de trois...
Les balises HTML VoirHTML, un langage à balises Le HTML n'est pas un langage de programmation. Il s'agit d'un langage permettant de décrire la mise en page et la forme d'un contenu rédigé en texte simple. Une page HTML est ainsi un simple fichier texte...

1

Nabla's, le 6 jun 2008 à 18:52:15

Tes retours a la ligne dans ton texte sont des \r\n probablement (charactères ascii 10 et 13 en decimal).
dans ton mail, tu dois les remplacer par des <br />

si tu affiches le code source de ton mail, ils devraient quand meme aparaitre !!

Répondre à Nabla's

2

Brachior, le 6 jun 2008 à 18:56:54

Remplaces tes <br /> en \n
tu travailesl en php et non en html :)

Répondre à Brachior

3

Zoubsy, le 7 jun 2008 à 13:18:50

Je veux bien, mais comment je fais ça ? Parce que avec mon code actuel, je reçois un mail du type

Message envoyé par : (adressemail)
Voici son message:
test sur 2 lignes : -01 -02

Et le message devrait apparaître sur plusieurs lignes. J'ai testé l'affichage de la source du mail, et effectivement les saut de lignes sont respectés.
Cependant, j'aimerais que mon mail soit affiché correctement, sans avoir a regarder la source du mail.
J'espère que ce n'est pas trop confus, merci d'avance.

Répondre à Zoubsy

4

Nabla's, le 7 jun 2008 à 13:24:19

Comme je t'ai dit, actuelement tes saut de lignes / retours a la ligne sont codées en ASCII par des \r et \n: charactères 13 et 10, je sais plus l'ordre.....


en PHP tu as des fonctions, comme explode je croi, pou réparer une chaine en utilisant un délimiteur et tu obtien un tableau... ensuite, tu n'as plus qu'a faire une boucle qui prend chaque ligne du tableau, et qui met le code de retour a la ligne HTML dedan, c'est a dire <br />

il y a peut etre une fonction toute prete pour remplacer une chaine de charactères par une autre en php, mais vu que je suis pas dévelopeur php, je peut pas t'aider plus... essaye ce que je t'ai dit avec le explode, sinon regarde un peu pour les fonctions de recherche et remplacement sur le site officiel de php, je sais que leur aide est bien faiteµ....

Répondre à Nabla's

5

Nabla's, le 7 jun 2008 à 13:26:38

Tu peux aussi utiliser la balise <p> </p> ou <pre> </pre> je me rapelle plus, mais en utilisant ca, tes sauts de lignes seront respectés, mais je croiq ue c'est pas top d'utiliser cette balise. Ceci dit, ca peut dépanner

Répondre à Nabla's

6

Zoubsy, le 7 jun 2008 à 13:28:31

Ah... ben là c'est plus de mon niveau ^^
Je crois que je vais me contenter de lire le code source :D
Merci quand même !

Répondre à Zoubsy

7

Nabla's, le 7 jun 2008 à 15:16:34

Mais si, essayes, c'est un repoussant ses limites que l'on s'améliore!

Répondre à Nabla's

8

Zoubsy, le 7 jun 2008 à 17:27:33

La technique du <p></p> M'a l'air plus simple, mais je dois la mettre où ?

Répondre à Zoubsy

9

Dr Zoidberg, le 7 jun 2008 à 18:38:02
  • +2

Salut,

Ne te complique pas la vie

Remplace

$message="Message envoyé par : $_POST[email]<br>Voici son message: <br/>$_POST[idee]";

par
$message="Message envoyé par : $_POST[email]<br>Voici son message: <br/>".nl2br($_POST[idee]);


Ca devrait marcher

Répondre à Dr Zoidberg

10

Zoubsy, le 8 jun 2008 à 00:49:13

Alors là je suis bluffé Dr Zoidberg !
Ca marche du premier coup !!
Merci beaucoup !

Répondre à Zoubsy

11

 Nabla's, le 9 jun 2008 à 10:46:41

Ha oui, syæpa la fonction nl2br ...

Répondre à Nabla's