dotclear,email,notification

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 ?

1. Le , 00:55 par [SiMON]
c824a1997b3574399cd50b4eb980c032

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 ?

2. Le , 14:07 par kemar
097e8992af2f397a7962194b398ecfcf

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é

3. Le , 14:07 par kemar
097e8992af2f397a7962194b398ecfcf

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é

4. Le , 14:51 par [SiMON]
c824a1997b3574399cd50b4eb980c032

@ 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...

5. Le , 21:55 par Blaise Braye
2e435bf59dfd93da4c2798e15c683da4

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.

6. Le , 11:19 par [SiMON]
c824a1997b3574399cd50b4eb980c032

@ 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...

7. Le , 12:21 par Blaise Braye
2e435bf59dfd93da4c2798e15c683da4

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?

8. Le , 00:17 par francis
4ff83a9dd8406af8e3f5257d67ce51fb

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

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.