Mostrar errores PHP en producción

Cuando estamos programando una aplicación o proyecto en PHP, este tiene 2 estados: desarrollo y producción.

Cuando programamos en local el proyecto está en desarrollo y la configuración de PHP por defecto, por norma general muestra todos los errores.

Cuando el proyecto está ya publicado en un servidor web en Internet, el proyecto está en producción y la configuración por defecto del PHP no muestra los errores, simplemente cuando ocurre un error puede aparecer una pantalla totalmente en blanco y es aquí cuando necesitamos modificar la configuración de PHP par que nos muestre lo errores y saber que está pasando.

Tipos de errores en PHP

  • Notice: es un aviso que significa “Probablemente no deberías estar haciendo lo que estás haciendo, pero te dejaré hacerlo de todos modos”. Esto no detendrán la ejecución del programa.
  • Warning: es una advertencia que significa “Estás haciendo algo mal y seguramente cause errores en el futuro, así que arréglalo”. Esto no detendrán la ejecución del programa.
  • Faltal error: son errores que detienen la ejecución de nuestro programa y por la tanto, hay que corregirlos de inmediato.

 

Mostrar los errores en PHP

Editar el archivo php.ini: hay que editar o añadir en caso de que no este la línea, poniendo:

display_errors = on

El problema de esta opción es que la mayoría de las veces no tenemos acceso a este fichero en el servidor

 

Editar fichero que se ejecuta

Podemos añadir directamente estas líneas al comienzo del fichero que queremos debugear o mejor crear una función con ellas y llamarla

<?php

ini_set('display_errors', 1);

ini_set('display_startup_errors', 1);

error_reporting(E_ALL);

?>

La función error_reporting(), puede tener diferentes parámetros que harán que se muestren diferentes tipos de errores.

 

Error_reporting()

error_reporting(E_ERROR) : muestra sólo los fatal error, no muestra warnings ni notice.

error_reporting(E_ALL ^ E_NOTICE): muestra todos los errores excepto los notice

error_reporting(E_ALL ^ E_WARNING): muestra todos los errores excepto los warnings

error_reporting(E_ALL): muestra todos los errores ( fatal error, notice y warnings)

error_reporting(0): Desactivar toda notificación de error

 

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *