Recevoir un mai si erreur 404

fabrice88

WRInaute occasionnel
Bonjour,

Sur mon site j'ai mis dans mon htaccess une redirection vers un page 404 (avec un pland e site) si la page demandée n'existe pas.

Je voudrai maintenant que lorsque cette page 404 s'affiche récupérer la mauvaise adresse qui a été sollicitée par l'internaute et la recevoir par mail afin de corriger les éventuelles mauvais liens ou erreurs.
Est-ce possible et comment peut ton mettre un tel système en place.
 

vitalizo

WRInaute impliqué
Salut,

t'adapte ceci sur ta page 404.
<?
$to="ton mail";
$sujet="ERREUR 404 sur VOTRE SITE.";

if(empty($HTTP_REFERER)) { $provenance="Pas de lien intermédiaire, connexion directe"; } else { $provenance=$HTTP_REFERER; }
$message="\nUne erreur 404 s'est produite sur le site VOTRE SITE.\n\nProvenance : ".$provenance.";
Page : ".$SCRIPT_URI."\nNavigateur : $HTTP_USER_AGENT\nAdresse IP : http://$REMOTE_ADDR\nNom de domaine : ".gethostbyaddr($REMOTE_ADDR)."\n";
@mail($to,$sujet,$message,"FROM:Erreur404");

?>
 

fabrice88

WRInaute occasionnel
bonjour,
je viens de mettre en place le code de vitalizo.
je reçoi bien un mail lorsque j'ai une erreur 404 mais l'adresse qui est donnée dans le mail est l'adresse du site et je n'ai pas la page inexistante que l'internaute aurait demandé.

en fait je reçoi ça :

Une erreur 404 s'est produite sur le site VOTRE SITE.

Provenance : http://www.monsiteinternet.fr/; Page :
Navigateur : Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50457; .NET CLR 3.5.30419; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C) Adresse IP : http://xx.xx.xx.xx Nom de domaine : ANancy-511-1-54-4.w81-49.abo.wanadoo.fr


est il possible d'avoir le nom de la page en plus afin de ciblé l'erreur ?
 

KOogar

WRInaute accro
Forty te la dit, impossible car c'est une redirection, donc toujours vide avec PHP, rien dans les logs Apache, par contre tu peux utiliser un script cgi (Cliff's 404 Finder)
 

forty

WRInaute passionné
pour qu'il n'y ai pas de redirection tu peux mettre :
Code:
ErrorDocument 404 /404.php
 

forty

WRInaute passionné
Le referer ne doit pas être vide.
Pour avoir l'adresse de la page en erreur c'est avec : 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']
 

Discussions similaires

Haut