Autor Zpráva
skrepyKOKO
Profil
ahoj,chci se zeptat,mám php script,něco jako chat,a chtěl bych tam zakázat html tagy,myslím tím obrázky,js scripty apod...jak by se to dalo udělat?
T.Thomas
Profil *
$obsah_chatu = HTMLSpecialCHars($obsah_chatu);
skrepyKOKO
Profil
no,myslím konktrétně jen obrázky a js scripty:) tagy typu BR,B,I,apod..to bych tam chtěl nechat...
jelikož se může stát že mě ta hodí někdo obrázek 1000x1000 a musím to mazat...a nebo nějakej script..tak bych to chtěl nějak zakázat
T.Thomas
Profil *
To se právě dělá tím, že uživatel připisuje formátovací tagy text. V PHP scriptu který to zpracovává pak nejprve převedeme veškeré speciální znaky na neškodné etnity právě touto funkcí
$obsah_chatu = HTMLSpecialCHars($obsah_chatu);
a pak ty které chceme na formátování povolit převedeme nazpět pomocí:
$obsah_chatu = str_replace("[b]","<b>", $obsah_chatu); 

Šlo by to samozřejmě i opačně. Prostě bychom převedli právě to co nechceme na něco neškodného
$obsah_chatu = str_replace("<img","nic", $obsah_chatu);
ale ...
T.Thomas
Profil *
K té prvé řádce předcházejícího příspěvku: Nějak jsem si neuvědomil že právě takhle tady formátování funguje a to slovo "text" má být obaleno [b] a to samé s uzavíracím tagem
skrepyKOKO
Profil
mno,takže pokud to dobře chápu...
text mám v databázi,tak si ho dám do proměnné např teda ten obsah_chatu
$obsah_chatu=$zaznam["zprava"];

a pak mám udělat nejdřív toto
$obsah_chatu = HTMLSpecialCHars($obsah_chatu);

a pak toto?
$obsah_chatu = str_replace("[b]","<b>", $obsah_chatu); 

pak teda mám dát do echa obsah_chatu jo?...
tedy celý to bude vypadat takto?
$obsah_chatu = $zaznam["zprava"];
$obsah_chatu = HTMLSpecialCHars($obsah_chatu);
$obsah_chatu = str_replace("[b]","<b>", $obsah_chatu); 
echo $obsah_chatu

?já jen že mě to nejde:D
peta
Profil
<script>
var reg, str;
reg = /<\/?(script|img).*?>/g;
str = "aaa <img\/> bbb <img\/> ccc <script> ddd <\/script> eee";
str = str.replace(reg,"");
alert(str);
</script>

V php preg_replace nebo strip_tags.

skrepyKOKO:
K tem poslednim otazkam, znas funkce echo, print_r, var_dump? Podivej se jimi, co funkce, ktere popisujes, udelaji s textem. Pripadne si precti dokumentaci, php.net/jmenofunkce. Dekujeme.

$obsah_chatu = HTMLSpecialCHars($obsah_chatu);
echo $obsah_chatu;
$obsah_chatu = str_replace("[b]","<b>", $obsah_chatu); 
echo $obsah_chatu;
$obsah_chatu = $zaznam["zprava"];
echo $obsah_chatu;
$obsah_chatu = HTMLSpecialCHars($obsah_chatu);
echo $obsah_chatu;
$obsah_chatu = str_replace("[b]","<b>", $obsah_chatu); 
echo $obsah_chatu;
T.Thomas
Profil *
Po vytažení z databáze přesně nevím. Já toto užívám u fóra, takové vlastně návštěvní knihy a tu mám vedenou jako texťák.
Je to přesně tak, jen bych to zkusil převést ještě před uložením do DB.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0