No deberías usar htmlentities
al guardarlo. Deberías usar htmlentities
al mostrarlo. La regla general es no codificar/desinfectar los datos hasta que lo necesite. Si haces htmlentities
en él cuando guarda, entonces tiene que hacer html_entity_decode
en el texto cuando el usuario quiere editar la entrada. Así que sanitizas para lo que necesites y nada más. Al guardarlo, debe desinfectarlo para la inyección de SQL, por lo que mysql_real_escape_string
eso. Al mostrar, debe desinfectar para XSS, por lo que htmlentities
eso.
Además, no estoy seguro de si viste el comentario de Darryl Hein, pero realmente no quieres que magic_quotes esté habilitado. Son cosas malas, malas y han quedado obsoletos a partir de PHP 5.3 y desaparecerán por completo en PHP 6.