SOS saut de ligne en php

Fermé
thegodakf Messages postés 15 Date d'inscription lundi 10 septembre 2012 Statut Membre Dernière intervention 14 novembre 2014 - 12 sept. 2012 à 09:12
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 - 12 sept. 2012 à 11:00
Bonjour,

Je vous explique mon problème, j'ai un champ <textarea > et quand le visiteur tape du texte dedans et va toute les fois a la ligne avec des "-" ex:

- j'aime ton site

- il est beau ton site

et quand il envoie ça dans ma base , lors de l'affichage tu texte sur le site ça devient ceci:

- j'aime ton site - il est beau ton site

comment faire pour garder la première mise en forme

aider moi s'il vous plait je code avec php j'ai essayé <br> et "\n" ça mais sa ne marche pas.

4 réponses

tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 219
Modifié par tryan44 le 12/09/2012 à 11:01
Pour afficher les retours à la ligne lors de l'affichage, il faut utiliser la fonction nl2br() sur la variable en question.
echo nl2br($texte);

https://www.php.net/manual/fr/function.nl2br.php
Une question stupide engendre une réponse stupide!
Une question mal formulé engendre une réponse aléatoire!
2
flav1313 Messages postés 751 Date d'inscription mardi 24 août 2010 Statut Membre Dernière intervention 22 octobre 2012 100
12 sept. 2012 à 09:29
Comment récupères-tu le contenu du TextArea ?

Montre nous ton code pour la page contenant le TextArea(HTML) et celui de la réception (PhP).
0
thegodakf Messages postés 15 Date d'inscription lundi 10 septembre 2012 Statut Membre Dernière intervention 14 novembre 2014
12 sept. 2012 à 09:40
Voici la partie HTML qui recupère le texte du visiteur

<form id="form3" name="form3" method="post" action="publier_offre_emploi.php">



<textarea name="piece" id="piece" cols="45" rows="5" ><?php if(isset($_POST['piece'])) echo htmlspecialchars($_POST['piece']);?></textarea>



<input type="text" name="datedepot" id="datedepot" value= <?php if(isset($_POST['datedepot'])) echo htmlspecialchars($_POST['datedepot']);?>>




<input type="text" name="lieudepot" id="lieudepot" width="45" value= <?php if(isset($_POST['lieudepot'])) echo htmlspecialchars($_POST['lieudepot']);?>>




<label for="publier"></label>
<input type="submit" name="publier" id="publier" value="Publier l'offre" />

</form>


Voici la partie qui permet d'afficher le texte du visiteur


<p>Tâche à exercer</p> <div ><?php echo $adds['tache_affaire'] ; ?> </div>


<p>Conditions à remplir</p> <div ><?php echo $adds['condition_aremplir'];?></div>

<p>Pièces à fournir</p> <div><?php echo $adds['piece_afournir'] ;?></div>


Maintenant où placer le code qui permet de faire des sauts de lignes???
0
flav1313 Messages postés 751 Date d'inscription mardi 24 août 2010 Statut Membre Dernière intervention 22 octobre 2012 100
12 sept. 2012 à 10:53
Je vois que tu ne comprends pas quelque chose.

Lors de la réception du contenu du TextArea, le contenu est au format HTML, par exemple :
-il fait beau.<br/>
-J'aime la pluie.

Lorsque tu enregistres dans ta base de données, tu fais appel à la fonction htmlspecialchars() qui supprime toutes les balises HTML donc qui supprime les balises <br/> (saut de ligne) !. C'est pour ça que dans ta base de données et lorsque tu affiches aux utilisateurs leurs messages, ça s'affiche de la façon suivante :
-il fait beau. -J'aime la pluie.

Je pense que ton souci vient de là.
0