Autor Zpráva
echo
Profil *
Zdravím,
vytvářím web pro "starší" generaci, která se bude jen těžko orientovat v texyle, bbcode či v cokoliv jiném. Takže jsem použil tinymce. Bohužel nevím, jak ošetřit vstup od uživatele tak, aby se nedal použít js, iframe a další rizikové věci. htmlspecialchars použít nemohu, protože editor standartně převádí vše do html hned při psaní (ne jak u texyly) a na bbcode styl v tinymce se mi přepínat nechce, protože ten zase neumí resize obrázků.

Napadlo mě něco jako:
  function ochrana ($text) {
    $text=str_replace('<script','&lt;script',$text);
    $text=str_replace('</script','&lt;/script',$text);
    $text=str_replace('<?','&lt;?',$text);
    $text=str_replace('?\>','?&gt;',$text);
    return $text;
  }


Toto ale nefunguje, když by někdo použil <ScRiPT...., takže se ptám, jestli někdo neví, jak jde udělat replace bez ohledu na velikost písmen.
Děkuji
panther
Profil
echo
co třeba eregi_replace? Ten by měl být „case insensitive“.
Mike8748
Profil
echo
co takhle str_ireplace() ?

panther
neni duvod pouzivat reg. vyrazy, kdyz to jde jednoduseji a rychleji pomoci String funkci
SwimX
Profil
echo
tvým skriptem ale nezabráníš <iframe src=''></iframe>
a také ne <a onmouseover=""> a podobné JS které nejsou v tagu script

Mike8748
setkal jsem se, že mi str_ireplace nefungovala. Konkrétně na webu zdarma, přitom na localu mi to jede. Když sem umazal i jelo to. Nevím proč.
Aesir
Profil
setkal jsem se, že mi str_ireplace nefungovala. Konkrétně na webu zdarma, přitom na localu mi to jede. Když sem umazal i jelo to. Nevím proč.
Protože tato funkce byla přidána až do páte verze PHP.
SwimX
Profil
Aesir
Aha. Děkuji

takže jediná možnost (když nechci regulár):
$text=str_replace('<?','&lt;?',strtolower($text));

?
Aesir
Profil
SwimX:
takže jediná možnost (když nechci regulár):

No jak se to vezme, je dobré myslet na to, že všechny parametry mohou být i pole. Mrkněte do manuálu do komentářů, bude tam určitě nějaká hotová, funkční varianta pro PHP4.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0