Script maison de génération d'erreur avec envoi d'un e-mail


medium69
WRInaute passionné
WRInaute passionné
 
Messages: 2485
Inscription: 7 Mai 2005

Script maison de génération d'erreur avec envoi d'un e-mail

Message le Mer Oct 18, 2006 17:13

Comme on me l'a demandé quelque fois déjà, voici le script qui me sert pour l'envoi d'un e-mail lors d'une erreur internet (je vous laisse coder la page d'erreur personnalisé pour votre cas personnel) :

Dans le .htaccess :
Code: Tout sélectionner
ErrorDocument 400 /erreur.php
ErrorDocument 401 /erreur.php
ErrorDocument 403 /erreur.php
ErrorDocument 404 /erreur.php
ErrorDocument 410 /erreur.php
ErrorDocument 500 /erreur.php


Code: Tout sélectionner
switch   ($_SERVER['REDIRECT_STATUS']) {
      case 401:
      $mess_erreur = 'Accès à la ressource refusé';
      break;
      case 403:
      $mess_erreur = 'Refus de traitement de la requête';
      break;
      case 404:
      $mess_erreur = 'Document non trouvé';
      $logoErreur = '404';
      break;      
      case 410:
      $mess_erreur = 'La ressource est indisponible et aucune adresse de redirection n\'est connue';
      }

if      (!eregi('(cltreq.asp|owssvr.dll|_vti)', $_SERVER['REQUEST_URI']) && $_SERVER['REDIRECT_STATUS'] != 410 ) {
         if      (empty($_SERVER['HTTP_REFERER'])) {
               $provenance = 'Connexion directe';
               }
         else   {
               $provenance = $_SERVER['HTTP_REFERER'];
               }
         
         $mess   = 'Erreur internet '.$_SERVER['REDIRECT_STATUS']."\n\r";
         $mess   .= 'Provenance : '.$provenance."\n\r";
         $mess   .= 'Url demandée : '.$_SERVER['REQUEST_URI']."\n\r";
         $mess   .= 'Navigateur utilisé : '.$_SERVER['HTTP_USER_AGENT']."\n\r";
         $mess   .= 'Nom de Domaine : '.gethostbyaddr($_SERVER['REMOTE_ADDR'])."\n\r";
         $mess   .= 'IP du visiteur : '.$_SERVER['REMOTE_ADDR'];      
         $to                  = email@levotre.com;
         $subject            = 'Erreur internet '.$_SERVER['REDIRECT_STATUS'];
         $message            = $mess;
         $headers            = 'From: noreply@levotre.com'."\r\n".'Reply-To: noreply@levotre.com'."\r\n";
   
         mail($to, $subject, $message, $headers);
         }


edit medium69 : correction du code erroné
Dernière édition par medium69 le Mer Oct 18, 2006 20:17, édité 1 fois.


dd32
Modérateur
Modérateur
 
Messages: 3387
Inscription: 9 Sep 2005

Message le Mer Oct 18, 2006 17:18

Merci beaucoup :wink:

Cependant c'est quoi ceci ?
Code: Tout sélectionner
'(cltreq.asp|owssvr.dll|_vti)'


medium69
WRInaute passionné
WRInaute passionné
 
Messages: 2485
Inscription: 7 Mai 2005

Message le Mer Oct 18, 2006 17:23

dd32 a écrit:Merci beaucoup :wink:

Cependant c'est quoi ceci ?
Code: Tout sélectionner
'(cltreq.asp|owssvr.dll|_vti)'


Des erreurs générées par certains navigateurs.

voilà de quoi te documenter :
:arrow: http://www.toulouse-renaissance.net/c_o ... _agent.htm
:arrow: http://www.webrankinfo.com/forums/viewtopic_4040.htm


Linkid
WRInaute discret
WRInaute discret
 
Messages: 224
Inscription: 9 Mai 2006

Message le Mer Oct 18, 2006 17:31

Sympa le script.... j'en ai un moi aussi et j'en suis très content !
Par contre, petit conseil :
- les robots passent obligatoirement par la page robots.txt pour vérifier leurs éventuelles interdictions... Donc si vous ne voulez pas recevoir une tonne de mail (ce qui est mon cas...), alors pensez à créer un fichier robots.txt vide si vous n'en avez pas... sinon, vous pouvez toujours ne pas en créer pour voir quels robots viennent sur votre site ! Ce qui m'est d'ailleurs assez utile...

Sinon, juste comme ça, je reçoit environ 150 mails en une soirée, alors je vous conseille aussi soit de créer une nouvelle boite email qui stocke vos erreurs, soit vous devriez vider souvent votre boite email ! :D Et pour ceux qui ont la chance de posséder une adresse email, alors tant mieux pour vous car gmail regroupe environ 60 messages ou plus en un seul mail... cool nan !


medium69
WRInaute passionné
WRInaute passionné
 
Messages: 2485
Inscription: 7 Mai 2005

Message le Mer Oct 18, 2006 17:37

Linkid a écrit:Sympa le script.... j'en ai un moi aussi et j'en suis très content !
Par contre, petit conseil :
- les robots passent obligatoirement par la page robots.txt pour vérifier leurs éventuelles interdictions... Donc si vous ne voulez pas recevoir une tonne de mail (ce qui est mon cas...), alors pensez à créer un fichier robots.txt vide si vous n'en avez pas... sinon, vous pouvez toujours ne pas en créer pour voir quels robots viennent sur votre site ! Ce qui m'est d'ailleurs assez utile...


Je confirme :!:

J'avais fais l'erreur au début de ne pas en avoir et c'est effarant le nombre d'email que l'on peut recevoir dans ce cas.

Cela dite, on peut tout à fait maitriser dans quel cas on reçoit ou ne reçoit on pas de mail.

L'intérêt de ce script permet de détecté très facilement d'où viennent les erreur (de son site ou d'un référant).

J'ai aussi un script sur le même principe pour m'envoyé des e-mail en cas d'erreurs SQL.

ça permet de détecté de la même manière les éventuelle erreurs et surtout de savoir qu'elle erreur à été générée.

Dans le cas des erreurs SQL, je ne renvois aucune information au visiteur, si ce n'est qu'une erreur est survenue.
ça évite de donner des infos à un éventuel hacker.


TOMHTML
WRInaute accro
WRInaute accro
 
Messages: 3250
Inscription: 25 Aoû 2004

Message le Mer Oct 18, 2006 17:49

personnellement je n'envoie pas de mails, mais à chaque erreur j'écris des infos (date, IP, navigateur, page demandée, etc) dans un simple fichier texte. C'est bien plus rapide et plus efficace ;)


tom_pascal
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 291
Inscription: 17 Nov 2003

Message le Mer Oct 18, 2006 18:13

En gros, on réinvente le error_log d'Apache alors :)


guicara
WRInaute passionné
WRInaute passionné
 
Messages: 2472
Inscription: 2 Fév 2006

Message le Mer Oct 18, 2006 18:40

Le code il faut la placer ou ? Dans le htaccess ?
Merci d'avance pour ce script maison !


medium69
WRInaute passionné
WRInaute passionné
 
Messages: 2485
Inscription: 7 Mai 2005

Message le Mer Oct 18, 2006 18:54

guicara a écrit:Le code il faut la placer ou ? Dans le htaccess ?
Merci d'avance pour ce script maison !


La première partie oui...

La seconde, il faut le placé dans une page d'erreur personnalisé.

Je n'indique que la partie qui envoie un e-mail, mais j'affiche aussi un message suivant l'erreur pour le visiteur


TOMHTML
WRInaute accro
WRInaute accro
 
Messages: 3250
Inscription: 25 Aoû 2004

Message le Mer Oct 18, 2006 19:44

tom_pascal a écrit:En gros, on réinvente le error_log d'Apache alors :)

ouais, surtout quand tu n'y a pas accès...


guicara
WRInaute passionné
WRInaute passionné
 
Messages: 2472
Inscription: 2 Fév 2006

Message le Mer Oct 18, 2006 19:52

TOMHTML a écrit:
tom_pascal a écrit:En gros, on réinvente le error_log d'Apache alors :)

ouais, surtout quand tu n'y a pas accès...


+1 on ne pense jamais assé au mutualiste !
Merci medium69 !


medium69
WRInaute passionné
WRInaute passionné
 
Messages: 2485
Inscription: 7 Mai 2005

Message le Mer Oct 18, 2006 20:03

De rien 8)

Je t'ai envoyé un MP concernant un bug sur ton site


guicara
WRInaute passionné
WRInaute passionné
 
Messages: 2472
Inscription: 2 Fév 2006

Message le Mer Oct 18, 2006 20:06

Tu est sur que ton code est corect ?
J'ai des Parse error: parse error, unexpected '@' et autres erreur de partout !


medium69
WRInaute passionné
WRInaute passionné
 
Messages: 2485
Inscription: 7 Mai 2005

Message le Mer Oct 18, 2006 20:18

guicara a écrit:Tu est sur que ton code est corect ?
J'ai des Parse error: parse error, unexpected '@' et autres erreur de partout !


J'avais fais une erreur à une ligne (j'utilise des constante) et la syntaxe était mauvaise.

teste de nouveau...


guicara
WRInaute passionné
WRInaute passionné
 
Messages: 2472
Inscription: 2 Fév 2006

Message le Mer Oct 18, 2006 22:02

merci pour tes messages privés,
oui sa marche très bien

Script maison de génération d'erreur avec envoi d'un e-mail

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités