Neměli byste používat htmlentities
při jeho ukládání. Měli byste použít htmlentities
při jeho zobrazení. Pravidlem je nekódovat/dezinfikovat data, dokud to nepotřebujete. Pokud uděláte htmlentities
na něm, když jej uložíte, musíte provést html_entity_decode
na text, když chce uživatel upravit vstup. Takže dezinfikujete to, co potřebujete, a nic víc. Při ukládání je potřeba provést dezinfekci pro SQL injection, takže mysql_real_escape_string
to. Při zobrazování je potřeba provést sanitaci pro XSS, takže htmlentities
to.
Také si nejsem jistý, zda jste viděli komentář Darryla Heina, ale opravdu nechcete, aby byly povoleny magic_quotes. Jsou zlá, špatná, věc a byly od PHP 5.3 zastaralé a v PHP 6 budou úplně odstraněny.