8792 sujets

Développement web côté serveur, CMS

Bonsoir,

Toujours en train de construire un formulaire d'insciption, j'applique certaines protections (htmlspecialchars() et mysql_real_escape_string () aux variables POST, avant de les enregistrer en BDD mysql, puis de les réafficher sur une page de récap.

A cause de mysql_real_escape_string mes sauts de lignes sont transformés en \r\n.

Donc au lieu d'avoir - dans la page de récap -:
blabla
blabla
blabla

j'ai ça :
blabla\r\nblabla\r\nblabla\r\n

Ok, pour enlever les \ il y a stripslashes, mais les rn sont toujours là à l'affichage, alors qu'ils ne sont pas en base.

Là, je suis perdu...
Si quelqu'un à une idée ?
Déjà évite le htmlspecialchars pour l'insertion en base, ça ne sert à rien et ça peut causer des problèmes (lors de requêtes par exemple, règles de collation toussa).

Sinon normalement pas besoin de stripslashes, les retours chariots devraient reconvertis ?
mysql_real_escape_string est conçu pour être utilisée avant l'insertion à la place par exemple d'addslashes, non pour l'affichage... enfin il me semble.

Sinon tu peux convertir tes \r\n en sauts de ligne avec un str_replace :
$chaine = str_replace('\r\n', "\r\n", $chaine);
salut,

pour les retours à la ligne la fonction nl2br() va t'aider Smiley cligne

quand au reste :
mysql_real_escape_string pour l'insertion dans la table
htmlspecialchars, htmlentities, nl2br .... c'est pour l'affichage Smiley cligne

@+