Balises HTML

Fermé
marwenovich Messages postés 111 Date d'inscription lundi 18 mars 2013 Statut Membre Dernière intervention 8 février 2014 - 17 juin 2013 à 21:33
marwenovich Messages postés 111 Date d'inscription lundi 18 mars 2013 Statut Membre Dernière intervention 8 février 2014 - 18 juin 2013 à 21:47
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

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 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
17 juin 2013 à 22:44
Bonsoir,

Je préconise plutôt strip_tags:

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

A+
0
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 lundi 18 mars 2013 Statut Membre Dernière intervention 8 février 2014 9
17 juin 2013 à 22:53
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
18 juin 2013 à 08:35
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 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
18 juin 2013 à 10:26
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