Page 1 sur 1

prise en compte des "retour a la ligne"

Posté : 22 mai 2006, 11:31
par béka
Voila, je voudrais qu'un utilisateur saisisse du texte dans un champ de saisi prévu a cet effet. Mais le problème c'est que quand je veux rafficher sur une autre page le texte qu'il a saisi, l'affichage ne prend pas en compte les retours à la ligne. Tout s'affiche à la suite.

Comment faire pour résoudre ce problème? je suppose que la solution doit être simple.

Posté : 22 mai 2006, 11:33
par zeus
C'est simplement que, dans la zone de saisie, les retours à la ligne sont des \n.

Dans une page internet, \n ne permet qu'un retour à la ligne dans le code, mais pas à l'affichage où il faut utiliser <br />

Pour transformer les \n en <br />, tu peut utiliser la fonction nl2br()

Posté : 22 mai 2006, 11:41
par béka
c'est à dire qu'en utilisant la fonction nl2br() lorsque je ferais mon echo, on pourra voir automatiquement lorsque l'utilisateur aura appuyé sur la touche Entrer pour revenir à la ligne?

Posté : 22 mai 2006, 11:43
par zeus
Tout à fait

nl2br(string) retourne la chaine string en ayant remplacé les \n par des <br />

Donc echo nl2br(string) va afficher string avec des retours à la ligne visible sur une page html

Mais le meilleur moyen de voir, c'est d'essayer ;)

Posté : 22 mai 2006, 11:46
par béka
Pour mieux comprendre( je suis curieux), comment est-ce que cela se traduit dans la BDD? Car quand je vais lire directement le texte que l'utilisateur a saisi et qui est alors insérer dans la base de données, je ne vois ni <br /> ni \n ?

Posté : 22 mai 2006, 12:03
par zeus
le \n n'est pas visible tel quel mais si tu regarde le champs, tu as un saut à la ligne dans le code source pas dans la page HTML (j'imagine que tu utilise phpMyAdmin)

Les données que tu récupères du formulaire et que tu enregistres dans la base de données contiennent des retours à la ligne "normaux" \n. C'est ce qu'il faut faire et cette méthode fonctionne chez toi

Le problème tel que tu nous l'as exposé, c'est qu'a l'affichage dans une page web, tu n'as pas les sauts de lignes. Je t'ai répondu que si, les sauts de lignes sont présents, mais pas visible car le code HTML ne répercute pas le \n. Il faut transformer ce saut à la ligne par un caractère que HTML peut comprendre : <br />

Cette étape ne concerne que l'affichage des données. Tu ne doit passer la chaine dans la fonction nl2br() uniquement au moment de l'affichage, surtout pas quand tu fait des insertion en base ;)

Posté : 22 mai 2006, 13:34
par béka
oui oui, ca j'avais bien compris pour l'affichage mais ce que je ne savais ps c'est qoment était interprété les retours a la ligne dans la base de données mais tu as répondu a ma question, merci.

Posté : 22 mai 2006, 13:59
par zeus
Est-ce que ton problème est [RESOLU] ?

Dans ce cas, n'oublie pas le tag ;)

Posté : 22 mai 2006, 16:24
par béka
nouveau probleme qui intervient toujours dans le meme "milieu".
Lorsqu'on saisit du texte, pour qu'il soit enregistré dans une BDD, il ne faut pas qu'il y est d'apostrophe alors de cette forme d\'apostrophe

COmment éviter ce désagrément?

Posté : 22 mai 2006, 17:07
par zeus
Tu es quelqu'un de motivé et tu tentes des choses pour apprendre, c'est bien. Mais si tu veux réellement avancer, il faut que tu apprennes à chercher par toi même.

Je ne dit pas ça pour t'embeter, surtout que je vais te donner la réponse pour cette fois ci, mais parce que si tu attends toujours que quelqu'un te donnes la réponse, tu va assez vite te retrouver coincé ...

La question que tu poses est un problème courant qui est souvent abordé.

Une petite recherche sur le forum ou sur google t'aurait apporté des tas de réponses ...

regarde du côté de addslashes()

Posté : 22 mai 2006, 17:14
par béka
si je procède ainsi, c'est essentielement pour gagner du temps. Car une recherche peut-etre assez lognue...
Et je peux assurer que je tente, que je fais des essais (avec un livre) avant de poser la question sur le forum.

Posté : 22 mai 2006, 17:29
par zeus
Je ne suis pas totalement d'accord avec toi

C'est plus long sur le moment, oui
A long terme, tu retiendras mieux ce que tu as cherché par toi même.

Sur le temps de recherche, je suis franchement septique :-k

Je suis allé sur la recherche du forum et j'ai tapé "insertion apostrophe" (rien d'exeptionnel, 2 mots que tu as mis dans ton post) et regarde le 4eme résultat
http://www.phpfrance.com/forums/viewtop ... apostrophe

Alors ? ;)

PS : de plus, le multipost est interdit, j'ai supprimé l'autre message

Posté : 22 mai 2006, 17:35
par béka
en fait, il est vrai qu'il aurait été facil d'obtenir des informations concernant cete fonction, mais tu sais comme moi qu'il y a une multitude d'information qui peut être erronée sur Internet. De plus je croyais que ce forum servait a ceci( je me suis peut etre trompé).

Mais il est vrai, je le reconnais, que j'aurais pu faire des recherches sur phpfrance.com

Enfin, j'ai réussi à résoudre ce problème.
merci pour ton aide zeus

Posté : 22 mai 2006, 17:43
par zeus
Effectivement, les forums, et plus largement la comunauté PHP, est présente pour echanger des connaissances et des expériences, c'est tout a fait vrai.

Mais il y a des limites ... des questions sont souvent abordée et une simple recherche rapide sur PHPFrance te permet d'aller beaucoup plus vite que d'attendre une réponse.

Si tu fait confiance à ceux qui te donnent une réponse, tu peut faire confiance à ceux qui ont répondu sur ce même forum dans le passé ;)