ldevun
Messages postés58Date d'inscriptionlundi 6 mars 2006StatutMembreDernière intervention 7 avril 2009
-
16 août 2006 à 15:34
ldevun
Messages postés58Date d'inscriptionlundi 6 mars 2006StatutMembreDernière intervention 7 avril 2009
-
18 août 2006 à 15:01
Bonjour,
J'ai un filtre HTML que j'ai récupéré sur le forum, mais celui-ci a un probleme, il ne m'affiche pas les "<" des balises exemple :
P>Ca FONT color=#ff0000>marche
P> EM>pas très STRONG>bien
Voici le code du filtre html, merci de votre aide.
while($i<strlen($text))
{ if( ($text{$i} !"<") OR (($text{$i} "<") && ($text{$i+1}=="/" ) ) ) //on cherche des tags html
{
$FilteredText = $FilteredText . $text{$i}; //si pas de tag html, pas de filtrage
$j++;
$i++;
}
else
{
$i++; //on s'interresse au caractere suivant le <
/* on verife que le tag html utilisé est autorisé */
foreach ($tags as $TestTag)
{
$CurrentTag = substr($text,$i,strlen($TestTag));
if (substr_count($CurrentTag,$TestTag) == 1) //si le tag est autorisé on agit en consequence
{
$TagIsAllowed = true ;
$FilteredText = $FilteredText . ">" . $CurrentTag ;
$i = $i + strlen($TestTag) ;
}
}
/* si le tag n'est pas autorisé on efface tout jusqu'à la fin du tag */
if ($TagIsAllowed = false)
{
while ((substr($text,$i,2)!= "</" )&&($i<strlen($text)))
{
$i++;
}
}
psykocrash
Messages postés240Date d'inscriptionvendredi 14 juin 2002StatutMembreDernière intervention17 mars 2009 18 août 2006 à 14:47
Si je comprend bien, le visiteur peux écrire mais tu ne veux pas que le html qu'il pourrait mettre soit interprété par le naviguateur, c'est bien ça ? alors tu n'a qu'a utiliser la fonction htmlspecialchars($texte);
Sinon l'erreur pourra peut etre etre réglée si tu fait ça :
if ($text{$i} == "<") //on cherche des tags html
ldevun
Messages postés58Date d'inscriptionlundi 6 mars 2006StatutMembreDernière intervention 7 avril 2009 18 août 2006 à 14:51
Oui, je souhaite que le texte que met l'utilisateur ne soit pas interprété s'il met du html. Mais je veux surtout mettre les balises html correspondant à la mise en forme que l'utilisateur a fait.
L'erreur n'est pas réglé si je fais : if ($text{$i} == "<")