Qu’est ce que c’est que ça ?
Vous êtes webmaster et vous avez mis en place un site fondé sur SPIP pour quelqu’un, en faisant des choses compliquées et des fois plus ou moins catholiques au niveau du code. Vous n’allez pas tous les jours sur ce site pour voir si tout se passe bien...
Or, un jour, la personne pour qui vous avez fait le travail vous appelle en vous décrivant une erreur. Vous faites tout comme elle vous a dit, et pas moyen de reproduire l’erreur.
Il s’agit donc ici de transposer un notificateur d’erreur PHP par email, proposé chez Zend à SPIP.
Attention ce petit outil ne notifie que les erreurs PHP, et en aucun cas les erreurs HTTP (erreur 404) ni pûrement SPIP (erreur de boucle) ni même MySQL.
Qu’est ce que ça fait ?
Une fois mis en place et configuré, la bête vous envoie un petit mail à chaque erreur importante avec les informations suivantes :
- la description de l’erreur
- le script qui l’a causée
- les variables d’environnement définies au moment où il y a eu erreur.
Plutôt qu’un long discours, voilà l’exemple de mail. Evidemment vous pouvez recevoir ce que vous voulez, en bidouillant un peu le code ;o)
Installation
- Téléchargez le fichier joint.
- Dézippez le fichier quelque part.
- Ouvrez le avec votre éditeur préféré.
- Editez notamment la ligne suivante en y plaçant votre email à vous. :
$email_addr="webmaster@supersite.net";
- Selectionnez tout le code php
- Copiez Collez le à la fin du fichier suivant (le créer si nécessaire) :
ecrire/mes_options.php
Comment ça marche
La fonction ErrorHandler
définit un traitement des erreurs en fontion de leur importance. Cette fonction est systématiquement appelée à chaque erreur ou warning, grâce au code suivant :
set_error_handler('ErrorHandler');
Pour en savoir un peu plus je vous conseille la lecture de :
- la page Zend.com d’où est tirée cette méthode.
- la page php.net de gestion des erreurs.
Tests et compatibilité
J’utilise ce code avec succès sur deux sites :
- www.equiterre.com.
- www.sncc-cfecgc.org.
Et cela semble fonctionner correctement avec [1] :
SPIP | PHP | OK/ERREUR |
---|---|---|
1.6 | 4.3 | ok ! |
1.6 | 4.06 | ok ! |
Pour tester le script, c’est très simple, il suffit de déclancher une erreur. Par exemple, essayez de mettre les codes suivants dans mes_fonctions.php
:
- pour générer une erreur fatale :trigger_error ("TEST : erreur", E_USER_ERROR);
- pour générer un warning :trigger_error ("TEST : erreur", E_USER_WARNING);
Le bon comportement est alors que vous ne voyez pas l’erreur affichée à l’ecran, mais vous recevez un mail avec sa description.
Discussions par date d’activité
Une discussion
Bonjour ;
Compatibilite pour la version 1.8 ?
aucune idée désolé, je n’ai pas encoore upgradé mes spips à 1.8. Mais je ne vois pas a priori pourquoi ça ne fonctionnerait pas
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |