Wednesday, September 26, 2007

Como evitar que el visitante vea errores de php

Muchas veces al realizar y subir nuestros proyectos a la web, vemos que funcionan correctamente, pero después de un tiempo aparecen de las sombras los típicos: fatal error, warning y otros. Entonces nos preguntamos: ¿cuánta gente vio las entrañas de mi sitio?.

Aunque esto parezca algo trivial, nos puede traer problemas de seguridad al hacer visible la estructura de tu sitio.

Las soluciones:

Deshabilitar todos los errores con esta función:

error_reporting: que define cuáles errores de PHP son reportados.


Usar las funciones die() y header():

Ejemplo,

'<'? mysql_connect("consulta errada") or die(header("Location: error_manager.php?id_err=123")); ?'>'

Esta solución la encuentro interesante ya que podemos personalizar los errores como queramos, y el hecho de utilizar la función die(), nos aseguramos de que el código no continúe generando errores.
El inconveniente es que muestra sólo el primer error que se genera, pero lo bueno es que que tú eliges donde.


Usando excepciones (Try Catch)

php5 incorpora excepciones, para más información vean la documentación.