Autor Zpráva
mimochodec
Profil
Občas se zaseknu na něčem, co už jsem dělal mockrát a vůbec mi to nesvědčí. Potřeboval bych v databázi ukládat text, který edituji pomocí tinymce. A nedaří se, buď se dublují apostrofy, nebo se naopak vypustí backslashe, nebo sto padesát dalších chyb. Tak mě napadlo, jestli by se nenašla dobrá duše, která by sepsala krátký návod se vším potřebným k tomu, aby se

- text z tinymce bezpečně uložil
- korektně vypsal zpátky do editoru
- korektně vypsal na stránce.

Byl bych mimořádně vděčen a myslím, že vlákno by se stalo bohatě navštěvovaným. Na tamten článek s názvem "definitivní návod" nebo jak mě neodkazujte, není tam to, o čem píšu. Jde mi o tyto jasně definované tři akce.
Alphard
Profil
mimochodec:
Na tamten článek s názvem "definitivní návod" nebo jak mě neodkazujte, není tam to, o čem píšu.
Ale je.

- text z tinymce bezpečně uložil“ do databáze zřejmě
Např. mysqli_real_escape_string(), záleží na použité databázové extenzi, každá má svoji funkci. Pokud se s db pracuje na principu parametrizovaných dotazů (což je lepší než ručně lepit stringy), není třeba explicitně volat žádnou funkci.
Pozor, je třeba mít neaktivní magic quotes (což může být problém jen na hodně starých instalacích).

- korektně vypsal zpátky do editoru
Tímto krokem si nejsem úplně jistý, neznám tinymce, ale předpokládám že html je do textarea třeba převést na entity – html kontext htmlspecialchars($html, ENT_QUOTES).

- korektně vypsal na stránce
Bez dalších funkcí, zde musíme věřit vygenerovanému html. Pokud je např. od klientů a věřit mu nelze, je třeba použít vhodný nástroj pro vyfiltrování (ne)povolených věcí – já poutívám Texy! nebo HTML Purifier (tento krok by bylo lepší provést před uložením html kódu z editoru, je časově náročnější).

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