La question a sans doute déjà été posée mais je n'ai pas trouvé alors si c'est le cas je m'en excuse.
Sur mon site j'ai un système de news, stockées dans une base MySql et je souhaiterai pouvoir y mettre du code html qui sera "interprêté" lors de l'affichage de la news. En clair je veux pouvoir mettre un lien dans ma news et qu'à l'affichage ce soit réellement un lien.
Pour le moment, une fois mon texte de news saisi, j'utilise la fonction :
En fait idée est "simplement" de me permettre d'entrer des news avec éventuellement des lien vers une autre page et de conserver un affichage correct (avec des accents) et de protéger mon site contre l'entrée de script pirates (via la zone de saisie de texte) dès fois que quelqu'un arrive a intersepter mon user/pwd.
Y'a pas un truc plus ou moins standard ? Ca me paraît pas extraordinaie comme requête et sans doute que plein de gens souhaitent faire la même chose non ?
Il faut que je fasse un truc du genre remplace"è" par un code à moi et pour réafficher ensuite faire l'inverse et ça pour toutes les lettres accentuées ? et pour éviter les script pirates ?
perso je te conseillerais d'utilser la fonction preg_replace_callback().
elle te permettra d'appliquer des modif seulement par exemple au texte hors des balises.
apres, je te conseil l'utilisation de htmlentities() au lieu de htmlspecialchars().
Personnelement, afin de simplifier la creation des contenu HTML, j'applique la fonction HTML entities a mes pages HTML une fois que toute la page a été créée.
Ainsi, tu n'as pas besoin d'appliquer cette fonction lors de l'enregistrement des messages, et tu n'aura pas besoin de l'utiliser ailleur non plus. Comme ca tu n'as plus aucune prise de tete avec les caracteres speciaux.
ca demande une petite intalation un peu particuliere, mais c'est a mon avi vraiment pratique.
de plus ca permet de faire des corrections automatique sur l'enssemble de la page comme mettre les adresses mail en lien et les URL aussi etc...
en ce qui concerne la securité, a partir du moment ou tu utilise la fonction addslashes, tu n'as pas besoin d'utiliser htmlspecialchars en plus.