Besoin d'aide ?

Si vous êtes un utilisateur Premium Premium, venez poser votre question dans le forum privé.


Gestion des messages d'erreurs sous Joomla!®

Cet article a été originellement posté sur mon blog http://allevents.avonture.be en février 2012.   Le site web d'aeSecure est désormais plus adapté aujourd'hui à ce type de billet.

La fonction 1.3 d'aeSecure vous permet d'activer ou pas l'affichage des erreurs; sans avoir à modifier manuellement votre fichier .htaccess / site

A l'affichage d'une page de votre site web, Joomla!® pourrait afficher un message d'erreur commençant par "Warning", "Notice" ou encore "Strict standard".   A l'opposé, à l'affichage d'une page de votre site web, Joomla!® pourrait ... ne rien afficher.   Seule une page vierge vous fait face.   Comment faire face à ces situations ?

Les erreurs type "Warning", "Notice" ou "Strict standard" sont utiles (et nécessaires) pour un développeur qui a coeur de programmer un code propre.  Un exemple : utiliser une variable qui n'a pas été déclarée ni initialisée, tenter d'accéder à un fichier qui n'existe pas, ... génère ce type de message et devrait être traité par le programmeur.  Sur un site de production, ces messages ne sont pas les bienvenues et doivent être masqué.

Au contraire, sur un site de production, lorsque vous êtes face à une page blanche, il est nécessaire de les voir afin de comprendre ce qu'il se passe.   Ainsi, il se pourrait que vous avez une erreur dite "fatale" qui plante Joomla!®.   Afin de récupérer votre site, il faut afficher le message, le comprendre et résoudre le problème.

Il y a au moins trois manières d'afficher / masquer les erreurs :

Administration de votre site

Configuration du rapport d'erreur sous Joomla!®

Configuration du rapport d'erreur sous Joomla!®
Si vous avez accès à votre administration, cliquez sur le menu Site puis sur l'onglet Serveur afin d'accéder au paramètre "Rapport d'erreurs".

Si la valeur est différente de "Défaut" ou "Aucun", sélectionnez "Défaut" puis sauvez et réaffichez la page où le message d'erreur était visible.   Si le message s'y trouve encore, affectez "Aucun" au paramètre.  

"Défaut" indique à Joomla!® de prendre en compte la valeur du fichier php.ini de votre serveur web alors que "Aucun" n'en tient nullement compte.

Si vous n'avez pas accès à votre administration, vous pouvez tenter la seconde méthode ci-dessous qui est, en fait, la même chose : modifiez via l'administration du site revient à modifier le fichier de configuration.

Fichier configuration.php

A la racine de votre site, vous trouverez un fichier nommé configuration.php.   Il faudra l'éditer.  

Sur votre site distant, vous devrez ouvrir votre client FTP, vous connecter sur votre site et vous rendre dans le répertoire racine du site.

Parce que ce fichier est vital pour votre site Joomla!®, je vous suggère systématiquement d'en prendre une copie avant de le modifier.

Editez le fichier.   Recherchez la ligne où est déclaré la variable "$error_reporting".   Il s'agit de la déclaration d'une variable qui, probablement dans votre cas, est initialisée à la valeur -1 (qui signifie "afficher tout").  Adaptez cette valeur en "6135".   Cette valeur correspond à E_ALL & ~E_NOTICE.

Vous aurez donc

public $error_reporting='6135';

Sauvez le fichier et affichez la page de votre site pour voir si l'erreur a disparu.   Si pas, utilisez une autre valeur, voir http://php.net/manual/fr/function.error-reporting.php.

Fichier php.ini

Sur un site en développement (=sur votre disque dur); vous pouvez procédez comme ci-dessus.   Vous pouvez aussi éditer le fichier php.ini qui se situe quelque part sur votre disque (la localisation dépend de votre serveur web).  Faites une recherche pour retrouvez le fichier et éditez-le ensuite.

Retrouvez la ligne qui déclare la variable "error_reporting" et adaptez sa valeur à "E_ALL & ~E_NOTICE"

Vous aurez donc

error_reporting = E_ALL & ~E_NOTICE


Quelles sont les différences principales entre ces méthodes ?

  • Le fichier php.ini régit tous les sites que vous auriez sur votre serveur web local tandis que le fichier configuration.php impacte uniquement le site web dans lequel se situe le fichier.
  • Le fichier php.ini n'est pas accessible sur un serveur de production mutualisé; vous n'y avez donc pas accès si votre site est en production
  1. Présentation d'aeSecure
  2. Téléchargement d'aeSecure
Back to top