[ Ilija Studen @ 19.10.2004. 20:23 ] @
Imam listu dozvoljenih tagova i dozvoljenih atributa. Kada korisnik pošalje HTML on ne biva stirpovan u potpunosti (HTML, ne korisnik :p ), već skripta prvo ukloni sve tagove osim dozvoljenih, a zatim i njihove atribute preleti i ukloni sve osim dozvoljenih (da mi neko ne bi stavljao gluposti kao onmouseover="alert('Magarac!');") i koješta...

Reg exp je ovakav:

Code:
$pattern = "/\<$tag (.*)\>/esU";
$replacement = "'<$tag ' . cHTMLCleaner::checkAttributes('\\1', '$attr') . '>'";


Gde je $attr lista dozvoljenih atributa.

Problem je što mi on ukloni i "/" kod empty tagova (recimo zameni <br /> sa <br >) što nije validan XHTML 1.1...

Kako to da rešim? Još uvek nisam sa reg expovima na TI (mada se znamo iz viđenja :) ) pa mi treba mala pomoć...

Pozdrav
[ NetworkAdmin @ 20.10.2004. 21:50 ] @
a da dodas / u dozvoljene atribute
[ loopia @ 21.10.2004. 13:45 ] @
Mogli bi ste da pogledate funkciju 'strip_tags()', imate mogućnost dodavanja listu dozvoljanih atributa, i možda vam može pomoći.

[Ovu poruku je menjao Goran Rakić dana 25.10.2004. u 16:50 GMT+1]
[ Ilija Studen @ 25.10.2004. 12:51 ] @
Citat:
CITE: http://www.php.net/manual/en/function.strip-tags.php

This function does not modify any attributes on the tags that you allow using allowable_tags, including the style and onmouseover attributes that a mischievous user may abuse when posting text that will be shown to other users.


Pali za tagove, ali ne dira atribute. Zato sam napisao svoje funkcije koje rade taj posao...

Problem sa rešio prostom proverom zadnjeg karaktera :) Malo falilo da sve još ukomplikujem kompleksnim expovima