Si has desarrollado una página web, la posibilidad de mostrar errores php puede resultarte muy útil para detectar funciones que no se estén ejecutando correctamente.
Sin embargo, hay una serie de cuestiones que debes tener en cuenta para que tu web no se convierta en una fiesta de “warnings” y “Fatal errors”.
Contenido
¿Qué es la función para mostrar errores php en tiempo de ejecución?
PHP (Hypertext Preprocessor) es un lenguaje de programación que se creó hace ya más de dos décadas. A pesar de su veteranía, su uso está aún muy extendido en la actualidad.
Es un lenguaje realmente versátil para ejecutar código del lado del servidor y mostrar el contenido de forma amigable a los usuarios de navegadores web.
Aunque el código fuente es invisible tanto para el navegador web como para el usuario, en algunas ocasiones dicho código fuente puede no ser ocultado. Una de estas ocasiones es cuando se produce algún error en la ejecución del mismo, lo cual es debido a que el lenguaje PHP se ejecuta e interpreta al mismo tiempo que se carga el código.
El error resultante se muestra en la pantalla del navegador web debido a una función del propio lenguaje php.
¿Por qué es útil mostrar errores php?
Si algún fragmento de nuestro código está provocando un fallo en la ejecución y no tenemos forma de averiguar exactamente cual es, lo tendríamos muy crudo para dar con la clave entre cientos o miles de líneas de código.
Así pues, la función de mostrar errores php en tiempo de ejecución debe interpretarse como una excelente ayuda al desarrollador, ya que sirve para depurar los scripts o ver exactamente qué parte del código ha fallado. Hay que tener en cuenta que cualquier actualización de contenido de nuestra web puede provocar un error que antes no existía, por lo que siempre es recomendable mantener activo algún sistema de notificaciones en este sentido.
Sin embargo, la opción de mostrar errores php por defecto puede tener otras consecuencias no deseadas. En primer lugar, si nosotros vemos el error, también lo verán los usuarios que naveguen por nuestro sitio web. De hecho, es bastante frecuente entrar a una página web y encontrarse en primer lugar un error de php y a continuación el resto de la web. Por cierto, los errores php tienen este aspecto, seguro que te suenan:
En segundo lugar, y esto ya es mucho más grave, los errores php pueden dejar a la vista pistas sobre cómo están configuradas algunas partes de la web e incluso la seguridad de la misma. Estas pistas podrían ser aprovechadas por atacantes para explotar vulnerabilidades en el código fuente, logrando inyectar código malicioso en nuestro servidor.
Por este motivo, es recomendable que la función de mostrar errores php solo esté activa en sitios web en estado de desarrollo y nunca en producción. De hecho, muchas empresas de hosting ocultan por defecto los errores php. Es lo que se conoce como ofuscación.
Pero aún así, es posible activar y desactivar las notificaciones de errores php.
¿Cómo mostrar los errores php en el servidor?
Si quieres asegurarte de que se muestran los errores php en tus páginas web, hay un par de formas para lograrlo.
Por un lado, puedes activarlos editando el archivo php.ini en tu servidor y añadiendo la línea:
display_errors = on
Sin embargo, es posible que tu proveedor de hosting no permita el acceso o la edición de este archivo. Esto también es frecuente que ocurra por cuestiones de seguridad.
Si este es el caso, puedes utilizar otra función que deberás agregar en la cabecera de todas las páginas en las que quieras mostrar los errores, o cargarla mediante un archivo externo. La función sería la siguiente:
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
?>
En caso de que tu servidor no muestre por defecto los errores php, con estas sencillas funciones puedes lograrlo. De todas formas, ten en cuenta lo que hemos comentado anteriormente: los errores se mostrarán para todo el mundo.
Más adelante te daremos un par de trucos para que puedas trabajar con esta ayuda sin tener que correr riesgos innecesarios.
¿Cómo mostrar los errores php en WordPress?
Como ya sabrás, WordPress es uno de los CMS más utilizados a nivel mundial y está programado en lenguaje PHP.
El código fuente de WordPress no suele dar errores de PHP por sí mismo, pero cuando se le empiezan a añadir Temas o Plugins la cosa cambia. Ya sea debido a incompatibilidades entre ellos o a funciones obsoletas, los errores de PHP en WordPress son -por desgracia- bastante habituales.
WordPress tiene su propio sistema de depuración y para ocultar o mostrar errores php hay que hacer algunas modificaciones en el archivo config.php.
Simplemente hay que buscar la línea:
define(‘WP_DEBUG’, false);
El valor de este parámetro puede estar en false o true. Debemos sustituir esa línea por el siguiente fragmento de código:
ini_set(‘log_errors’,’On’);
ini_set(‘display_errors’,’Off’);
ini_set(‘error_reporting’, E_ALL );
define(‘WP_DEBUG’, true);
define(‘WP_DEBUG_LOG’, true);
define(‘WP_DEBUG_DISPLAY’, false);
Esto activará el modo de depuración (debug) y registrará los errores en un archivo de log, pero no mostrará los errores en pantalla. Una vez hechos estos cambios, guardamos el archivo y lo volvemos a subir a nuestro servidor.
¿Cómo acceder al registro sin mostrar errores pHp?
Como hemos comentado anteriormente, es recomendable no mostrar los errores php en el navegador. Sin embargo, como desarrolladores es necesario tener acceso al registro de los mismos para poder depurar el código y solucionar posibles problemas. Para esto hay varias soluciones.
La primera es que trabajes con una versión de desarrollo de tu web. Ya sea en un servidor local o en la nube, con una versión de desarrollo puedes probar los cambios y actualizaciones de tu web y ver si generan errores antes de pasarlos a producción. Como es lógico, en la versión de desarrollo sí estaría activada la función de mostrar errores php, no así en la versión de producción.
Otra forma de acceder al registro es ocultando los errores en el navegador pero registrando los mismo en un archivo de log. Estos archivos de registro suelen estar en una carpeta del servidor con el mismo nombre (log).
Por último, una práctica muy habitual entre los desarrolladores de PHP es ocultar los errores en el navegador, pero enviar el archivo de registro por email cada vez que se produzca un error. Esta última opción requiere algunos conocimientos un poco más avanzados pero realmente no es complicado.
Conclusiones
Esperamos haberte dado algunas claves sobre cómo trabajar con los errores php.
Realmente es algo muy útil pero que hay que manejar con cuidado para no dar una imagen descuidada de nuestro sitio web y sobre todo para no dar pistas a posibles atacantes.
En cualquier caso, si tiene alguna duda sobre cómo manejar los errores php, puedes dejarnos un comentario.
2 comentarios en «¿Cómo mostrar errores PHP?»
excelente y me gustaria ver la posibilidad de un tutorial que mande los errores a mail, sera posible, mil gracias y sigue asi
Hola los errores de php los puedes ver activando el mostrar errores o viendo el Log de error que lo puedes ver desde panel Cpanel o Plesk .