Trucos y Soluciones - Programación PHP

PHP errorEn numerosas ocasiones necesitamos depurar errores de scripts PHP que se encuentran en servidores con la opción de mostrar los errores  deshabilitada, lo que nos impide disponer de información del error producido en pantalla.

Esto que en general es recomendable, se convierte en un problema cuando nos topamos con un error en el servidor que no conseguimos reproducir en el entorno de desarrollo, por ello debemos recurrir a algún método que nos permita mostrar en pantalla el error pero sólo en la página que necesitamos depurar.

Para este y otros casos donde necesitamos modificar un parámetro determinado del servidor podemos hacer uso de la función PHP ini_set(). Esta función nos permite modificar parametros del servidor en la ejecución en curso que no se mantienen para siguientes consultas producidas en la navegación.

Para el caso que nos ocupa el parametro que deseamos activar en el servidor es "display_errors" y el valor deseado 1.

En la mayoria de los casos necesitaremos con anterioridad definir que tipo de mensajes de error deseamos mostrar en nuestra página en el proceso de depuración para lo que haremos uso de la función PHP error_reporting(), con el parámetro que mejor se adapte a nuestras necesidades.

Una buena manera de solicitar los errores de la página consistirá en incluir al comienzo de la misma un par de líneas solicitando que se nos muestren todos los errores exceptuando los etiquetados como "Noticias", que normalmente son poco relevantes, como se muestra a continuación:

 <?php
error_reporting(E_ALL & ~E_NOTICE);
ini_set("display_errors", 1);

?>

A continuación se muestra un listado con las opciones disponibles para la consulta de errores clasificados por tipos:

Valor

Constante

Descripción

1

E_ERROR

Errores Fatales en tiempo de ejecución. Éstos indican errores que no se pueden recuperar, tales como un problema de asignación de memoria. La ejecución del script se interrumpe.

2

E_WARNING

Advertencias en tiempo de ejecución (errores no fatales). La ejecución del script no se interrumpe.

4

E_PARSE

Errores de análisis en tiempo de compilación. Los errores de análisis deberían ser generados únicamente por el analizador.

8

E_NOTICE

Avisos en tiempo de ejecución. Indican que el script encontró algo que podría señalar un error, pero que también podría ocurrir en el curso normal al ejecutar un script.

16

E_CORE_ERROR

Errores fatales que ocurren durante el arranque incial de PHP. Son como un E_ERROR, excepto que son generados por el núcleo de PHP.

32

E_CORE_WARNING 

Advertencias (errores no fatales) que ocurren durante el arranque inicial de PHP. Son como un E_WARNING, excepto que son generados por el núcleo de PHP.

64

E_COMPILE_ERROR

Errores fatales en tiempo de compilación. Son como un E_ERROR, excepto que son generados por Motor de Script Zend.

128

E_COMPILE_WARNING

Advertencias en tiempo de compilación (errores no fatales). Son como un E_WARNING, excepto que son generados por Motor de Script Zend.

256

E_USER_ERROR

Mensaje de error generado por el usuario. Es como un E_ERROR, excepto que es generado por código de PHP mediante el uso de la función de PHP trigger_error().

512

E_USER_WARNING

Mensaje de advertencia generado por el usuario. Es como un E_WARNING, excepto que es generado por código de PHP mediante el uso de la función de PHP trigger_error().

1024

E_USER_NOTICE

Mensaje de aviso generado por el usuario. Es como un E_NOTICE, excepto que es generado por código de PHP mediante el uso de la función de PHP trigger_error().

2048

E_STRICT

Habilítelo para que PHP sugiera cambios en su código, lo que asegurará la mejor interoperabilidad y compatibilidad con versiones posteriores de PHP de su código.

4096

E_RECOVERABLE_ERROR

Error fatal capturable. Indica que ocurrió un error probablemente peligroso, pero no dejó al Motor en un estado inestable. Si no se captura el error mediante un gestor definido por el usuario (vea también set_error_handler()), la aplicación se abortará como si fuera un E_ERROR.

8192

E_DEPRECATED

Avisos en tiempo de ejecución. Habilítelo para recibir avisos sobre código que no funcionará en futuras versiones.

16384

E_USER_DEPRECATED

Mensajes de advertencia generados por el usuario. Son como un E_DEPRECATED, excepto que es generado por código de PHP mediante el uso de la función de PHP trigger_error().

30719

E_ALL

Todos los errores y advertencias soportados, excepto del nivel E_STRICT.



Share Link: Bookmark Google Yahoo MyWeb Del.icio.us Digg Facebook Myspace Reddit Ma.gnolia Technorati Stumble Upon
Recuerda: Si te resulta util este artículo compártelo en tus redes sociales favoritas

Escribir un comentario


Código de seguridad
Refescar

Publicidad

Perfil

F·T
Ing. Informático

Univ. de Málaga

  • Ingeniería del Software
  • Proyectos Web 2.0
  • Aplicaciones Open Source
  • Consultoría SEO / SEM
  • Aplicaciones B2C / B2B
  • Redes Sociales
facebook twitter linkedin Delicious google-plus2
Skype Google Talk Gmail email rss
· Email: correo@ftorres.es
· Google+: Francisco Torres
· Facebook: FTorres
· Twitter: @ftorres.es
· Linkedin: ftorres_web
Contáctame

Últimos Artículos

Trabajos


Funcionando con joomla! gracias a 10·cero