prise en compte des "retour a la ligne"

Mammouth du PHP | 536 Messages

22 mai 2006, 11:31

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.
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

22 mai 2006, 11:33

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()
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 536 Messages

22 mai 2006, 11:41

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?
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

22 mai 2006, 11:43

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 ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 536 Messages

22 mai 2006, 11:46

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 ?
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

22 mai 2006, 12:03

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 ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 536 Messages

22 mai 2006, 13:34

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.
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

22 mai 2006, 13:59

Est-ce que ton problème est [RESOLU] ?

Dans ce cas, n'oublie pas le tag ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 536 Messages

22 mai 2006, 16:24

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?
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

22 mai 2006, 17:07

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()
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 536 Messages

22 mai 2006, 17:14

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.
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

22 mai 2006, 17:29

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
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 536 Messages

22 mai 2006, 17:35

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
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

22 mai 2006, 17:43

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é ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer