Dotclear 2 Hack : Envoi d'un email de notification lorsqu'une erreur se produit
Par Ludovic Toinel le mardi 6 novembre 2007, 00:20 - DotClear - Lien permanent

Le hack est tout simple et consiste à envoyer un mail de notification lorsque le blog retourne des messages d'erreurs graves aux utilisateurs (base de données injoignable par exemple).
Editer le fichier "/inc/prepend.php" et rendez-vous à la fin du fichier. Vous devriez trouver une fonction qui se nomme "__error"
function __error($summary,$message)
Il suffit d'ajouter le code suivant au début de la fonction :
$from = "mon_adresse@truc.fr";
$to = "mon_adresse@truc.fr";
$subject = mb_encode_mimeheader('Blog Error','UTF-8','B');
$headers[] = 'From: '.$from;
$headers[] = 'Content-Type: text/plain; charset=UTF-8;';
$message = $summary."\r\n\r\n";
mail::sendMail($to,$subject,$message,$headers);
Vous serez ainsi prévenu de toute les erreurs graves qui se produisent sur votre blog.
Attention, si votre blog est très fréquenté, ce type de hack pourrait bombarder votre messagerie d'email. Des idées pour temporiser l'envoi de mail ?
Dernières News
Nuage de Tags
Archives
RSS des articles


Commentaires
Pourquoi ne pas écrire un petit fichier texte contenant le timestamp du dernier envoi, et ne pas en renvoyer si le dernier rapport date de moins de x heures ?
On pourrais aussi imaginer stocker les erreurs dans un fichier texte...
et se servir du mécanisme de programmation des billets pour déclencher l'envoi a des intervalles de temps donné
On pourrais aussi imaginer stocker les erreurs dans un fichier texte...
et se servir du mécanisme de programmation des billets pour déclencher l'envoi a des intervalles de temps donné
@ kemar : Il me semble que le but de cette façon de reporter les erreurs est de se situer au plus près de la "base" du programme... Ce serait bête de coder une belle fonction de rapport d'erreur qui fasse x et x choses, mais que cette fonction ne puisse être déclenchée...
salut,
je suis nouveau dans le monde dotclear et même du blog pour tout dire...
D'après ce que j'ai pu observer, il serait aisé de catégoriser les fonctionnalités d'un blog.
Dans ce cas, ne serait-il pas possible de mettre en place un gestionnaire d'erreur sur base de quelque critères paramétrables genre "nb erreurs max d'affilée au chargement de telle catégorie de service". Je ne connais pas les méthodes offline de dotclear mais çà ne doit pas être trop compliqué de demander à ce genre de gestionnaire d'erreur de mettre telle catégorie en offline en prévenant l'utilisateur genre "Désolé, je bug à mort pour le moment, j'ai prévenu le boss mais il en fou pas une en ce moment"...
vous voyez l'idée?
sinon au plus simple, mettre un compteur d'erreur; à chaque erreur un email de notification est envoyé mais après x erreurs non checkées par l'admin, le blog se met en offline pour cause de maintenance.
@ Blaise Braye : Encore une fois, ce genre de système est très alléchant, mais en cas d'erreur fatale PHP, je doute qu'on réussisse à faire tout ça...
si vous me parlez d'erreur fatale, alors je pense qu'on ne parle plus de la même chose; à ce niveau là on pourra travailler avec un htaccess.
je conseille cet article qui montre la simplicité du système...
http://www.tuteurs.ens.fr/internet/...
mais pour l'envoi de mails, vous oubliez à moins de configurer apache pour contacter l'administrateur en cas de pépin sur cette couche là... et on peut carrément se poser la question: et si smtp a un problème aussi?
Personnellement, je crois alors qu'on s'écarte du problème présent car à la base, on ne parlait pas de crash fatal du module php mais des erreurs propagées et catchées via la fonction __error.
je me trompe?
J'ai fais un petit billet en rapport, il est possible de ne pas toucher au sources prepend.php en tous les cas avec la beta 7 voir ici j'ai mis un petit lien vers ta solution en bas de mon billet : http://www.myouaibe.com/index.php/p...