Bonjour tout le monde et merci de m'aider
Voici mon problème:
J'ai un formulaire de recherche. Celui ci va chercher les données dans une base de données mySQL.
L'insertion des données se fait comme ceci:
(j'utilise donc mysql_real_escape_string afin de protéger les données)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $topic = mysql_real_escape_string($_POST['topic']) ; $query = "insert into partenaire values('".$topic."'")";
Ensuite, pour afficher mes données lors de la recherche, j'utilise:
Tout se passe très bien et le code HTML qui pourrait se trouver dans le champs topic est affiché par exemple <br> et non comme un passage à la ligne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $topic = stripslashes($tab['topic']) ; echo htmlentities($topic,ENT_QUOTES);
Maintenant, je voudrais souligner les mots clés utilisés, lors de la recherche:
Quelquechose du style:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 echo str_replace (stripslashes($_SESSION['motcle']), '<span style="text-decoration: underline;">'.stripslashes($_SESSION['motcle']).'</span>', $topic)
Si j'affiche cela, il n'y a plus de protection des données grace à htmlentities, MAIS si j'utilise htmlentities, la balise <span style="text-decoration: underline;"> n'est forcément pas interprettée et donc mon mot clé n'est pas souligné.
Ma question est donc: comment faire pour convertir tous les caractères éligibles en entités HTML SAUF si ces caractères sont <span style="text-decoration: underline;">.
OU
Comment souligner les mots clés dans le résultats lors d'une recherche sur un champs se trouvant dans une base de données et pouvant contenir des tags HTML?
Merci pour votre aide!
Partager