Pantalla de error con mensaje de error

Esta sugerencia va a los amigos desarrolladores. Para agilizar un poco las tareas cuando están tratando con errores en Magento.

Es común (de la versión 1.4.x) el sistema muestra un mensaje de seguridad como esta:

Error log record number: 1234567890

Por supuesto que no voy a explicar todo de nuevo, si quieres saber cómo identificar este mensaje de error, lee el post: Error registro registro número – Identificar el problema.

Error log record number en Magento

En este post voy a dar algunos consejos para mostrar los errores en la pantalla, y cómo configurar esta pantalla.

Pros y contras

Cuando usted juega el mensaje de error en la pantalla, su sistema se expone, ya que de esta manera está mostrando los fallos, que se pueden explotar en ataques virtuales. Por lo tanto, utilice esta sugerencia sólo en un entorno de prueba.

Error Magento que explora en la pantalla

Otra ventaja en ocultar el mensaje en la pantalla y generar un archivo de registro, es que cuando un cliente encuentra un error, el error se almacena en el directorio de errores y se sabe de la falla. De lo contrario, usted nunca sabría que su cliente encontró un problema durante la navegación – sabría sólo si entra en contacto.

La pantalla estándar de error (error log record number) no ayuda en la navegación y la orientación del usuario, sin saber lo que ocurrió y cómo proceder. En este caso es interesante personalizar esta página, alentando al cliente a ponerse en contacto e informar lo que causó el problema (pantalla/acción).

Activando el modo desarrollador

Vamos a ver cómo hacer que el sistema deje de generar archivos de registro y pase a mostrar los errores en el navegador. Para ello abra el archivo index.php.

En las versiones más antiguas, basta con retirar la señal # de la palabra:

#Mage::setIsDeveloperMode(true);

En las versiones más recientes, se agregó una condicional. Que significa que usted puede configurar una variable para activar este modo de desarrollo, o simplemente borrar (comente) la condicional (if) y guarde el archivo.

if (isset($_SERVER['MAGE_IS_DEVELOPER_MODE'])) {
    Mage::setIsDeveloperMode(true);
}

Para definir un valor a esa variable, abra el archivo .htaccess de su servidor y agregue lo siguiente:

SetEnv MAGE_IS_DEVELOPER_MODE "127.0.0.1"

Recordando que esto sólo se debe hacer en su entorno de pruebas. Y se puede informar a cualquier valor de la variable, en este ejemplo he usado “127.0.0.1“.

Supervisión de errores por correo electrónico

Mucha gente no sabe, pero siempre que se produce un error en el sistema, usted puede ser alertado por correo electrónico. Por lo tanto, mucho cuidado al usar esta opción, ya que su correo electrónico puede ser inundado por mensajes de error.

En su instalación de Magento, vea el archivo:

erros > local.xml.sample
Hasta la versión 1.3.x sería la carpeta reports/config.xml

Haga una copia de este archivo y cambie el nombre a local.xml, con las siguientes configuraciones:


    default
    
        email
        Se ha producido un error en la tienda
        su_email@su_dominio.es
        leave
    

Ahora, cada vez que se produce un error, el sistema enviará automáticamente un correo electrónico a la dirección que se indica en el archivo. Una pantalla con formulario de contacto se mostrará al usuario para que pueda proporcionar más información sobre el error.

Informe del error

Al rellenar y enviar el formulario, recibirá un segundo correo electrónico sobre el fallo. Puede ayudarle a simular el problema en un entorno de pruebas/desarrollo.

Espero que estos consejos ayuden a que su trabajo sea más productivo. También lee el post: Módulos Incompatibles, donde cito las mayores causas de problemas en Magento.

¡Éxito!

Hasta que surja la oportunidad de mudarme a España, sigo ayudando desde la distancia.

Vídeo de la semana