retour à la ligne

Invité
Invité n'ayant pas de compte PHPfrance

15 janv. 2007, 18:18

bonjour,

j'ai un petit formulaire d'enregistrement mais quand je retourne à la ligne, php me l'enregistre avec "rn" à la place du retour à la ligne et me colle tous les mots.

Comment faire pour que le retour à la ligne soit interpréter en tant que tel et pas en passage en 'rn' ?

Merci.

ViPHP
ViPHP | 3607 Messages

15 janv. 2007, 18:23

nl2br() ?

Invité
Invité n'ayant pas de compte PHPfrance

15 janv. 2007, 18:56

ça rentre en conflit avec un :

$_POST = array_map('stripslashes', $_POST);

stripslashes est peut-être pas nécessaire. Je le dégage ?

Eléphant du PHP | 445 Messages

15 janv. 2007, 18:58

Tente plutôt avec nl2br() comme l'a dit jojolapine.

Quitte a ensuite faire un stripslashes pour l'affichage, bien que venant de données en $_POST ce ne soit peut-être pas très utile.
LLDC
Ulti

ViPHP
ViPHP | 3607 Messages

15 janv. 2007, 18:59

Tu n'es pas obligé d'enlever le stripslashes... par contre tu peux faire ton nl2br() avant le stripslashes(), comme ça plus de soucis.

Invité
Invité n'ayant pas de compte PHPfrance

15 janv. 2007, 19:02

D'accord. Merci pour ton aide.

Invité
Invité n'ayant pas de compte PHPfrance

15 janv. 2007, 19:41

(re moi)

J'ai beau trifouillé dans tous les sens mais :

si les retours à la ligne sont bien supprimés, et bien il n'y en a plus et question mise en page, c'est quand même pas mal d'en avoir.

J'ai tenté un _replace mais c'est en conflit avec une autre règle qui dégage tout html tags.

Mon problème est donc le suivant : pour pouvoir avoir des retours à la ligne, je vais devoir autoriser le html. C'est pas dangereux comme opération ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

15 janv. 2007, 21:15

C'est pas terrible en effet... en fait ce qu'il faut voir c'est que les retours à la ligne sont codés ainsi : \r\n (windows) ou juste \n (unix)

Je ne vois pas l'intérêt du stripslashes si ce n'est pour un affichage immédiat, et qu'à la condition que php ait ajouté des slashes automatiquement dans le request (paramétrable dans php.ini)..

Ton stripslashes() va avoir pour effet de transformer les "\r\n" en "rn" ce qui n'a plus aucun sens.

Donc à moins que tu n'ais une bonne raison de le garder, virer le stripslahes(). Si tu veux empêcher de saisir du html tu peux virer toutes les balises aevc html_strip_tags() et une fois toutes les balises virées, utiliser nl2br() pour remplacer les retours charriots par des "<br />". (Encore que personnellement je stoquerais les valeurs avec \n et n'utiliserais le nl2br que lors de l'affichage) :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Invité
Invité n'ayant pas de compte PHPfrance

16 janv. 2007, 11:01

C'est bien noté. Merci pour ton explication car j'ai changé mon code en ce sens.