cs_kakoo
Messages postés27Date d'inscriptionjeudi 26 juin 2003StatutMembreDernière intervention 7 février 2009
-
14 nov. 2006 à 13:47
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 2010
-
14 nov. 2006 à 18:13
Bonjour,
Ma question va peut-être paraître idiote mais je n'arrive pas à trouver la solution.
Je crée un logiciel qui gère des zones textes de commentaires, dans lesquelles tous les caractères sont autorisés.
Du fait de la particularité du logiciel en question il arrive souvent que des mots soient saisis entre '<' et '>' (par exemple '<=>', ou '<saisie>', ou du code XML).
Ma question est la suivante :
Sachant que je veux stocker du texte brut (échappé par addslashes) dans MySQL, que je ne veux pas utiliser htmlspecialchars, quelle est la solution pour vérifié le texte entré, supprimer uniquement les codes html (pour éviter les hacks et injections), et conserver les textes non html entre '<' et '>' ?
En effet, strip_tags ne sait pas différencier le code html du reste du texte et vire tout à chaque fois, et htmlspecialchars me rallonge le texte saisi, ce qui le "coupe" lors de l'enregistrement MySQL, si la longueur totale dépasse la taille allouée dans les champs de la base de données.
J'avais pensé à contrôler que les tags sont des tags html ou pas, mais je n'ai pas trouvé de solution souple qui ne m'obligerait pas à ressaisir le tableau des tags si le langage html évolue.
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 14 nov. 2006 à 16:20
Hello,
difficile de voir ce qui est du html et ce qui n'en est pas.
peut très bien faire partie d'un flux xml, après tout.
Comme tu le dis "si le langage html évolue"...ben ouais.
Seul htmlspecialchars (ou htmlentities) sera parfait car il évitera toute interprétation (sans supprimer, néanmoins : tu ne perds rien, mais évidemment, tu conserves aussi le superflu).