8791 sujets

Développement web côté serveur, CMS

Salut,

Quand on stocke le contenu d'un champ de formulaire input dans une table MySQL, on ne devrait pas voir dans cette table des retours a la ligne mais uniquement un gros bloc de texte avec des <br/> ou d'autres balises dedans, n'est-ce pas ?

Mon editeur wysiwyg (fckeditor...) introduit pourtant des retours a la ligne en plus des balises HTML de retour a la ligne. Dans ma table je n'ai donc pas juste un gros bloc html, mais j'ai de vrais retours a la ligne, comme ceux que vous voyez dans ce present post.

Deux questions :

(1) Comment diable est-ce possible ?
(2) Comment diable empecher ca ?
Non, pas forcément, à moins que tu ne stockes dans ta table que du HTML (ce qui est généralement déconseillé, enfin ça dépend des utilisations). Dans ta table tu as des retours à la ligne (\n). Ensuite, pour les afficher correctement, tu peux utiliser la fonction php nl2br.
Ok, tu vas peut etre pouvoir m'aider la ou personne a pu m'aider jusqu'a maintenant :

Mon FCKeditor ajoute un \n chaque fois qu'il voit un <br />. Donc dans ma table MySQL non seulement je vois le <br /> correspondant a mon retour a la ligne, mais je vois aussi un vrai retour a la ligne qui est l'expression d'un \n que FCKeditor a mis ....

En fait c'est pas exactement \n, mais \r\n. Bref quand j'affiche ce champ MySQL, mon browser affiche deux <br /> : un pour le vrai <br /> et un pour le \n que FCKeditor a mis.

Le plus incroyable c'est que si j'essaie de virer le \r\n avant d'inserer dans ma table avec un str_replace, ca change absolument rien. J'aussi essayé aussi avec juste \n, idem.

Et j'ai abandonné l'idée de configurer FCKeditor pour qu'il arrete de faire ca vu que c'est apparemment impossible (a moins de changer le code mais ca ..)

Une idée ?
'lo,
c'est possible, il y a une modif à faire dans fckconfig.js, remplace :

FCKConfig.EnterMode = 'p' ; // p | div | br

par
FCKConfig.EnterMode = 'br' ; // p | div | br