Diskuze: Prevod bb-kódu do html

PHP PHP Prevod bb-kódu do html American English version English version

Avatar
Matúš Petrofčík
Šéfredaktor
Avatar
Matúš Petrofčík:

Posledný Machr na PHP ma natoľko fascinoval, že som sa rozhodol prekopať moje riešenie :) pozrel som si riešenia ostatných (tak sa učí najlepšie) a vymyslel ako by to mohlo fungovať. Okrem smajlíkov tam mám všetko čo spomína teta wikipédia (http://en.wikipedia.org/wiki/BBCode), ale keď niečo zadám do code tagu, nechem aby sa akékoľvek bb tagy v code zmenili na html tagy

môžete ma trošku nasmerovať? :) ďakujem a ešte raz pekné Vianoce ;)

Odpovědět 24.12.2013 4:21
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Matúš Petrofčík
Šéfredaktor
Avatar
Matúš Petrofčík:

vlastne, kod si môžete pozrieť tu: http://sklad.petrofcik.eu/…erbbasdf.zip

Nahoru Odpovědět 24.12.2013 4:28
obsah kocky = r^2 ... a preto vlak drnká
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Matúš Petrofčík
David Čápka:

No vypadá to o dost lépe :) Ještě si to dej do objektu :P

Nahoru Odpovědět 24.12.2013 8:33
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Marek Z.
Redaktor
Avatar
Marek Z.:

Pěkný kód, ale dle mého názoru by tam ta ochrana nemusela být. Pouze pokud by si s tím pracoval ještě v sql.

Nahoru Odpovědět 24.12.2013 10:17
Chybami se člověk učí, běžte se učit jinam!
Avatar
Kit
Redaktor
Avatar
Odpovídá na Matúš Petrofčík
Kit:

Předpokládám, že to mělo vypadat takhle:

$input = htmlspecialchars($_POST['input']); //proti php injekcii
$output = parsujBB($input);

Nežádoucí bílé znaky bych raději nahrazoval mezerou.

Nahoru Odpovědět 24.12.2013 10:43
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Matúš Petrofčík
Šéfredaktor
Avatar
Matúš Petrofčík:

David Čápka: až sa objekty naučím, bude aj to ;)

Marek Z.: no ak tam niekto vloži </textarea>ni­ečozákerné<tex­tarea>, vznikne problém :)

Kit: s tými medzerami to nie je zlý nápad :)

Nahoru Odpovědět 24.12.2013 14:50
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Marek Z.
Redaktor
Avatar
Odpovídá na Matúš Petrofčík
Marek Z.:

Do 'textarei' to je jasné, to jo.

Nahoru Odpovědět 24.12.2013 15:17
Chybami se člověk učí, běžte se učit jinam!
Avatar
Matúš Petrofčík
Šéfredaktor
Avatar
Odpovídá na Kit
Matúš Petrofčík:

Marek Z.: to je teda nadávka :D

a Kit: medzery nechávam na pokoji, entery a tabulátory zmení na medzery, zvyšok bielych znakov odstráni
a s tým

$input = htmlspecialchars($_POST['input']); //proti php injekcii
$output = parsujBB($input);

to nie je dobre, lebo mi to bude robiť chyby napr. pri pri

[style size="15px"]veľké písmo[/style]

inak som uploadol novú verziu ktorá si poradí aj s tagmi typu:

Toto je [b]zvýra[/b]zvýraznéný[b]znéný[/b]
Toto je [b]zvýra[b]zvýraznéný[/b]znéný[/b]

no a už je najvyšší čas vypnúť PC :)

Nahoru Odpovědět 24.12.2013 18:20
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Kit
Redaktor
Avatar
Odpovídá na Matúš Petrofčík
Kit:

K čemu tedy používáš proměnnou $input?

Nahoru Odpovědět 24.12.2013 18:35
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Matúš Petrofčík
Kit:

Překládání apostrofů a uvozovek můžeš vypnout volbou ENT_NOQUOTES

Nahoru Odpovědět 24.12.2013 19:04
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Matúš Petrofčík
Šéfredaktor
Avatar
Odpovídá na Kit
Matúš Petrofčík:

aby som si vedel uchovať pôvodný vstup, ktorý potom vkladám do šablony do vstupného poľa, aby sa vstup nestratil :)
snad som to napísal správne

Nahoru Odpovědět 24.12.2013 19:09
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Kit
Redaktor
Avatar
Odpovídá na Matúš Petrofčík
Kit:

Aha, to děláš, aby útočníci mohli dělat XSS.

Nahoru Odpovědět 24.12.2013 19:15
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Matúš Petrofčík
Kit:

Konečně to už vidím. Ty to ošetřuješ paralelně na dvou různých místech. Tak to by mě nenapadlo.

Nahoru Odpovědět 24.12.2013 19:26
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Matúš Petrofčík
Šéfredaktor
Avatar
Odpovídá na Kit
Matúš Petrofčík:

Mám to teda zle?

Čo je prosím XSS? v kratkosti :)

Nahoru Odpovědět 24.12.2013 20:29
obsah kocky = r^2 ... a preto vlak drnká
Avatar
mkub
Redaktor
Avatar
Odpovídá na Matúš Petrofčík
mkub:

XSS je Cross site scripting... to je ak sa hackerovi podari do stranky cez vstupne pole (resp. vstupnych premennych) prepasovat svoj vlastny kod (bud HTML, alebo javascriptovy) a tym tu stranku pozmeni

 
Nahoru Odpovědět 24.12.2013 20:33
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 15 zpráv z 15.