Mostrar errores de PHP por web

Código PHP para que Apache muestro los errores encontrados en nuestro código, ya sea en la propia web o en un log.

Aunque normalmente desarrollamos en servidor local con el reporte de errores activado por defecto, una vez subido el proyecto a un servidor online el muestreo de errores desaparece. En estos casos, y en aquellos en los que queremos controlar el reporte de errores en localhost, debemos conocer el cómo mostrar u ocultar errores en PHP.

En este tutorial te voy a mostrar las diferentes formas de mostrar y ocultar errores de código PHP. Desde las más sencillas con unas pocas líneas de código hasta realizar ciertos cambios en la configuración del servidor web.

Los conceptos más importantes de las que trato en este tutorial son:

  1. Cómo activar la notificación de errores en el navegador.
  2. Cómo mostrar todos los tipos de errores php.
  3. Deshabilitar la notificación de todos los tipos de errores.
  4. Mostrar errores de tipo un tipo o clase concreta.
  5. Activar errores desde el servidor.

Pasos para imprimir los errores por pantalla

Los pasos para mostrar los errores ocurridos en PHP son básicamente dos:

  1. Habilitar el mostrado de errores por pantalla. Esto se puede hacer de distintas formas pero en este tutorial nos centraremos en hacerlo desde el código.
  2. Indicar que tipos de errores quieres visualizar. Esto quiere decir que indicaremos cuales son, de todos los tipos de errores posibles, los que queremos que se nos muestren en el navegador.

Cómo habilitar el mostrado de errores en PHP

Antes de empezar a explicarte los distintos tipos de errores que podemos tratar vamos a ver como activar la visualización de errores PHP por el navegador. Esto lo conseguiremos con la función ini_set y la variable de configuración display_errors.

ini_set('display_errors', 1);

Una vez establecida la directiva display_errors a 1 podremos empezar a configurar y visualizar los tipos de errores que queramos durante nuestra depuración.

A continuación vamos a indicar que nivel de mostruo de errores queremos activar, tenemos varias opciones (niveles) con los que configurar el sistema. Toda esta configuración se realiza a través de la función error_reporting de PHP.

En PHP 5 existen 16 niveveles de error distintos, cada uno de ellos identificado con un valor entero distinto. No te asustes! Voy a exporte a continuación solo los más importantes.

A continuación te muestro los tipos más importantes de errores y cómo mostrarlos.

1. Mostrar todos los errores en PHP

Es decir, todos los errores de todos los niveles a excepción de uno, los errores de tipo estricto.

Aunque pueda parecer una locura, si nuestra programación es más o menos correcta nos encontraremos con una baja cantidad de errores a pesar de mostrarlos todos.

//primera forma de hacerlo
error_reporting(E_ALL);

//segunda forma de activar el mostrado de todos los errores
error_reporting(-1);

2. Mostrar errores de tipo NOTICE.

Los errores de tipo NOTICE son errores que no son fatales pero que sería interesante solucionar para un correcto funcionamiento de la aplicación.

Un típico error de este tipo es cuando utilizamos una variable que no hemos definido con antelación el famoso NOTICE: undefined index o NOTICE: undefined variable

error_reporting(E_NOTICE);

Mostrar todos los errores en PHP

Este es el snippet más general de todos, que tiene el simple objetivo de mostrar todos los errores de nuestro código PHP, sin limitaciones:

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

Deshabilitar la notificación de todos los tipos de errores

ini_set('display_errors', 0);
error_reporting(0);

Mostrar errores de tipos concretos

Si lo que necesitamos es solamente visualizar errores de un tipo concreto o categoría podemos utilizar el comando errorr_reporting indicando el tipo de error por su código.

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_STRICT);

El listado completo de tipos de errores es el siguiente:

1   E_ERROR
2   E_WARNING
4   E_PARSE
8   E_NOTICE
16  E_CORE_ERROR
32  E_CORE_WARNING
64  E_COMPILE_ERROR
128 E_COMPILE_WARNING
256 E_USER_ERROR
512 E_USER_WARNING
1024    E_USER_NOTICE
6143    E_ALL
2048    E_STRICT
4096    E_RECOVERABLE_ERROR

Sobre el autor

Javier Gómez Redactor en Srcodigofuente.es

Javier Gómez

Ingeniero técnico en informática de gestión. Desarrollador web freelance y profesor de desarrollo web a partes iguales. Testarudo autodidacta, creativo, perfeccionista y alma libre.

Cargando comentarios

Utilizamos "cookies" para información estadística. Si continúas navegando aceptas su uso.