strip_tags ne fonctionne pas

Eléphant du PHP | 160 Messages

19 mai 2017, 16:32

Bonjour à toutes et à tous,

Pour expliquer mon problème, tout est dans le titre : j'ai l'impression que lorsque j'enregistre un texte dans ma BDD grâce à un éditeur que j'ai conçu, j'ai beau empêcher l'enregistrement de certaines balises, mon script s'en fiche et lorsque je copie/colle le texte de la page http://fr.lipsum.com/ il enregistre un span entre mes balises <p></p>....

Dois-je utiliser finalement du regex ?

Voici la partie de code que j'utilise pour enregistrer mon texte dans la base de données :
<?php
//[...]
$array_1 = array("'",'"');
$array_2 = array("\"",'\'');
$contenu = mysqli_real_escape_string($lien,$_POST['contenuItem']);
$new = strip_tags($contenu,'<b><i><u><ol><ul><li>');
$contenuReplace = str_replace($array_1, $array_2, $new);
$fiContenuItem = "<p style=\"text-align:$fiAlignPara; color:$fiColorPara; font-size:$fiSizePara; \">$contenuReplace</p>";
//[...]
?>

Quelqu'un pour m'aider ?

Avatar de l’utilisateur
Administrateur PHPfrance
Administrateur PHPfrance | 7256 Messages

19 mai 2017, 19:09

Bonjour,

Fait un var_dump() de $contenu avant la fonction strip_tags() et un var_dump() de $new après et regarde le résultat pour essayer de comprendre le problème.


Par ailleurs, une suggestion qui n'est pas lié à ta question : je te recommande d'utiliser la fonction mysqli_real_escape_string() juste avant l'envoi de ta requête à la BDD. Ceci la protection qui est mise en place par mysqli_real_escape_string() pourrait être affaiblie si tu fais des traitements ensuite sur la chaine de caractère.
Quand tout le reste a échoué, lisez le mode d'emploi...