Balises HTML

marwenovich Messages postés 111 Date d'inscription   Statut Membre Dernière intervention   -  
marwenovich Messages postés 111 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous ,j'ai un problème,j'ai un <textarea> contenant de texte qui sera enregistrer dans la base de données mais je cois que si quelqu'un tape du code html dedans sa peut changer tout l'interface de mon site lors de son affichage



c'est a dire si quelqu'un tape cela <font color="red">test
sans aucune balise fermante ,mon site sera affiché en rouge
A voir également:

1 réponse

Utilisateur anonyme
 
Bonjour

Pour éviter ce problème, il suffit d'utiliser la fonction htmlspecialchars :

$ligne=mysql_fetch_array($rep)
echo htmlspecialchars($ligne['texte']);


Note que ça ne te dispense pas d'utiliser mysql_real_escape_string pour enregistrer les données dans la base. Il s'agit de deux problèmes différents à ne pas mélanger, et les deux sont importants.
0
mpmp93 Messages postés 6648 Date d'inscription   Statut Membre Dernière intervention   1 340
 
Bonsoir,

Je préconise plutôt strip_tags:

https://www.php.net/manual/fr/function.strip-tags.php

A+
0
Utilisateur anonyme
 
strip_tags est un bulldozer qui démolit tout ce qui ne lui plaît pas sans aucun discernement. Il dénature complètement le message saisi par le visiteur.
Avec htmlspecialchars, le visiteur verra s'afficher ce qu'il a tapé, ni plus, ni moins.
0
marwenovich Messages postés 111 Date d'inscription   Statut Membre Dernière intervention   9
 
non je ne veux pas éviter l'utilisateur d'écrire des balises html mais je veux être sure qu'ils sont bien fermé
0
Utilisateur anonyme
 
Avec strip_tags tu n'auras plus de balises html du tout
Avec htmlspecialchars, les balises apparaîtront telles qu'elles ont été tapées, complètes ou incomplètes, mais ne seront pas actives (comme dans l'éditeur qui te sert à écrire tes scripts).
Si ce que tu veux, c'est que les balises bien formées agissent bien comme des balises, mais que celles qui sont mal faites (pas refermées par exemple) soient ignorées, je ne vois pas de solution simple.
0
mpmp93 Messages postés 6648 Date d'inscription   Statut Membre Dernière intervention   1 340
 
Dans ce cas, intégrer un mini-éditeur HTML écrit en javascript. TinyMCE par exemple:
https://www.tiny.cloud/docs/demo/

Ya pas d'autre solution plus simple sauf à interdire les balises HashTeuMeuLeu.

A+
0