Notification d’erreur PHP par e-mail

Ceci est une ARCHIVE, peut-être périmée. Vérifiez bien les compatibilités !

IL s’agit ici du port assez technique d’un outil de notification au webmaster des erreurs PHP directement par email.

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

  1. Téléchargez le fichier joint.
  2. Dézippez le fichier quelque part.
  3. Ouvrez le avec votre éditeur préféré.
  4. Editez notamment la ligne suivante en y plaçant votre email à vous. :
    $email_addr="webmaster@supersite.net"; 


  5. Selectionnez tout le code php
  6. 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] :

SPIPPHPOK/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.

Notes

[1Hésitez pas à donner vos versions de php et/ou spip avec vos succès ou infortunes.

Avertissement : il s’agit là d’un outil de debuggage un peu avancé, si vous ne connaissez rien au php, ou peu, ça fait pas de miracle...

Discussion

Aucune discussion

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

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.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom