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

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par medium69, 18 Octobre 2006.

  1. medium69
    medium69 WRInaute passionné
    Inscrit:
    7 Mai 2005
    Messages:
    1 940
    J'aime reçus:
    3
    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:
    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:
    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é
     
  2. dd32
    dd32 WRInaute accro
    Inscrit:
    9 Septembre 2005
    Messages:
    2 705
    J'aime reçus:
    0
    Merci beaucoup :wink:

    Cependant c'est quoi ceci ?
    Code:
    '(cltreq.asp|owssvr.dll|_vti)'
     
  3. medium69
    medium69 WRInaute passionné
    Inscrit:
    7 Mai 2005
    Messages:
    1 940
    J'aime reçus:
    3
  4. Linkid
    Linkid WRInaute discret
    Inscrit:
    9 Mai 2006
    Messages:
    159
    J'aime reçus:
    0
    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 !
     
  5. medium69
    medium69 WRInaute passionné
    Inscrit:
    7 Mai 2005
    Messages:
    1 940
    J'aime reçus:
    3
    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.
     
  6. TOMHTML
    TOMHTML WRInaute accro
    Inscrit:
    25 Août 2004
    Messages:
    2 502
    J'aime reçus:
    0
    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 ;)
     
  7. tom_pascal
    tom_pascal WRInaute discret
    Inscrit:
    17 Novembre 2003
    Messages:
    247
    J'aime reçus:
    0
    En gros, on réinvente le error_log d'Apache alors :)
     
  8. guicara
    guicara WRInaute passionné
    Inscrit:
    2 Février 2006
    Messages:
    1 558
    J'aime reçus:
    0
    Le code il faut la placer ou ? Dans le htaccess ?
    Merci d'avance pour ce script maison !
     
  9. medium69
    medium69 WRInaute passionné
    Inscrit:
    7 Mai 2005
    Messages:
    1 940
    J'aime reçus:
    3
    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
     
  10. TOMHTML
    TOMHTML WRInaute accro
    Inscrit:
    25 Août 2004
    Messages:
    2 502
    J'aime reçus:
    0
    ouais, surtout quand tu n'y a pas accès...
     
  11. guicara
    guicara WRInaute passionné
    Inscrit:
    2 Février 2006
    Messages:
    1 558
    J'aime reçus:
    0
    +1 on ne pense jamais assé au mutualiste !
    Merci medium69 !
     
  12. medium69
    medium69 WRInaute passionné
    Inscrit:
    7 Mai 2005
    Messages:
    1 940
    J'aime reçus:
    3
    De rien 8)

    Je t'ai envoyé un MP concernant un bug sur ton site
     
  13. guicara
    guicara WRInaute passionné
    Inscrit:
    2 Février 2006
    Messages:
    1 558
    J'aime reçus:
    0
    Tu est sur que ton code est corect ?
    J'ai des Parse error: parse error, unexpected '@' et autres erreur de partout !
     
  14. medium69
    medium69 WRInaute passionné
    Inscrit:
    7 Mai 2005
    Messages:
    1 940
    J'aime reçus:
    3
    J'avais fais une erreur à une ligne (j'utilise des constante) et la syntaxe était mauvaise.

    teste de nouveau...
     
  15. guicara
    guicara WRInaute passionné
    Inscrit:
    2 Février 2006
    Messages:
    1 558
    J'aime reçus:
    0
    merci pour tes messages privés,
    oui sa marche très bien
     
  16. medium69
    medium69 WRInaute passionné
    Inscrit:
    7 Mai 2005
    Messages:
    1 940
    J'aime reçus:
    3
  17. guicara
    guicara WRInaute passionné
    Inscrit:
    2 Février 2006
    Messages:
    1 558
    J'aime reçus:
    0
    A savoir je ne peux plus accéder a un répertoire protéger par htaccess enfin, je ne vois plus la fenetre pour identifiants + pass :wink:
     
  18. guicara
    guicara WRInaute passionné
    Inscrit:
    2 Février 2006
    Messages:
    1 558
    J'aime reçus:
    0
    Encore un petit problème, je resoit plus d'une vingtaine de mail par jours par exemple du boot de google qui recherche des pages que j'ai supprimer.

    Comment créer un filtre qui dit de ne pas envoyer le mail si l'ip du visiteur est... ou si le document introuvable est... ?

    Merci !
     
  19. thierry8
    thierry8 WRInaute accro
    Inscrit:
    11 Juillet 2005
    Messages:
    2 728
    J'aime reçus:
    0
    et bien on ne pourra pas dire que Google est ton amis sur ce coup :wink:

    une petite recherche ?
     
  20. medium69
    medium69 WRInaute passionné
    Inscrit:
    7 Mai 2005
    Messages:
    1 940
    J'aime reçus:
    3
    Le filtre il est là !!
    Code:
    if      (!eregi('(cltreq.asp|owssvr.dll|_vti)', $_SERVER['REQUEST_URI']) && $_SERVER['REDIRECT_STATUS'] != 410 ) { 
    Autrement dit...
    Si la variable $_SERVER['REQUEST_URI'] ne contien pas cltreq.asp ou owssvr.dll ou _vti et la variable $_SERVER['REDIRECT_STATUS'] est différent de 410 alors exécuté le code (envoi du mail).

    Tu peux testé sur ce que tu veux ; tu reçois un e-mail qui te donne des infos sur ton visiteur.

    Tu as donc tout loisir de modifier la condition en conséquence...

    Désolé de te dire cela, mais je ne vais quand même pas t'écrire ton site de A à Z :wink:

    Je ne peux t'aider mieux que cela...

    D'ailleurs, si tes pages supprimées n'ont pas de redirection 301 vers une nouvelle page, je te conseille de leur mettre un code 410 (pour ressource non disponible sans adresse de redirection connue) ; c'est mieux pour les robots
     
  21. guicara
    guicara WRInaute passionné
    Inscrit:
    2 Février 2006
    Messages:
    1 558
    J'aime reçus:
    0
    Merci, oui enfaite ce n'est pas très sorcier !
    Pour les redirections, a ma prochaine version...
     
Chargement...
Similar Threads - Script maison génération Forum Date
inscription a la maison des artistes Administration d'un site Web 9 Novembre 2006
Meta description différente de celle choisie (Rank Math + Qwant) Problèmes de référencement spécifiques à vos sites 25 Juillet 2022
Pages dynamiques avec Javascript ? Développement d'un site Web ou d'une appli mobile 14 Juillet 2022
Balise méta description : faut-il insérer son mot-clé ? Débuter en référencement 2 Juillet 2022
[JavaScript Array] modifier un code html sans le supprimer/recréer Développement d'un site Web ou d'une appli mobile 20 Juin 2022
Lien dans la description d'une vidéo YouTube...quel est prix raisonnable par mois ? YouTube, Google Images et Google Maps 16 Juin 2022
Le javascript protège-t-il du copiage HTML ? Développement d'un site Web ou d'une appli mobile 9 Mai 2022
Sites de scripts PHP, jQuery, Ajax, etc. Le café de WebRankInfo 20 Mars 2022
Tester une URL avec Javascript Développement d'un site Web ou d'une appli mobile 25 Février 2022
jour en javascript Développement d'un site Web ou d'une appli mobile 24 Février 2022
Search Console Probleme Meta title & Meta description fiche produit Référencement Google 27 Janvier 2022
référencement site full javascript Débuter en référencement 17 Janvier 2022
Script "haut de page". Développement d'un site Web ou d'une appli mobile 4 Janvier 2022
Détecter arrêt user d'un script PHP ? Développement d'un site Web ou d'une appli mobile 28 Décembre 2021
Astuce Référencement Playstore et pré inscription Référencement Google 17 Décembre 2021
Problèmes dans le méta-titre / description + Sitemap Référencement Google 29 Novembre 2021
Même contenu descriptif vidéo Youtube et fiche produit site Débuter en référencement 26 Novembre 2021
Texte de meta description erroné Demandes d'avis et de conseils sur vos sites 25 Novembre 2021
Google réécrit la meta description Référencement Google 21 Novembre 2021
Duplicate content sur la meta description Débuter en référencement 14 Novembre 2021