Être avertie lors d'une erreur 404 + url demandée
..par mail
Créations de Modules
benflovideo Membre non connecté
-
Modérateur
- Voir le profil du membre benflovideo
- Inscrit le : 13/03/2010
- Groupes :
-
Equipe Modération
-
Equipe Communication
Mon site étant en pleine refonte j'en ai profité pour personnaliser ma page d'erreur 404. Et je partage ici une petite fonction que j'ai mise en place à l’occasion de cette refonte:
- Le but: Être avertie par mail lorsqu'un visiteur tombe sur votre page 404 avec l'url qui a été demandé pour obtenir cette erreur.
Pour ceux que ça intéresse, voici l'installation de cette fonctionnalité sous une v3:
Le fichier .htacess
- Ouvrir le fichier .htacess à la racine de votre site
- A la ligne 48, vous trouverez ceci: # Error page #
- Remplacer la ligne qui se trouve à la suite par:
# Error page # :ErrorDocument 403 /member/404.php?id=403
ErrorDocument 404 /member/404.php?id=404
ErrorDocument 500 /member/404.php?id=400 - Enregistrer puis fermer votre fichier
Le fichier 404.php
- Ouvrez votre fichier 404.php dans le dossier /member
- Après la ligne 32, ajouter le code php suivant:
Code PHP ://Signalement mail d'une erreur /* --------------------------------------------- variables à modifier selon paramètres et besoins --------------------------------------------- */ # nom de domaine (ex. phpboost.com) $hostndd = "votre-site.com"; # fichier de redirection (ex. plan.php) vide = index $rep_fichier = "/"; # identifiant de l'email destinataire (ex. contact) # donc le nom placé avant l'arobas $maildest = "contact"; # nom de domaine si le destinataire du mail n'est pas # le webmaster du nom de domaine ci-dessus (option) $hostndd_bis = ""; # initialisation de l'envoi du mail # vraie par défaut (false pour Free) $envoi_email = true; # URL cible pour les robots si aucune occurrence # n'est trouvée (vide = index) $renvoiRobots = ""; # tableau des robots surveillés (option) # sinon écrire : $robots = ""; $robots = array("avantbrowser","almaden","archiver"); /* /* ------------------ fin des modifications ------------------ */ /* simplification des variables serveur */ $iderreur = $_GET['id']; # type d'erreur (via .htaccess) $agent_http = $_SERVER['HTTP_USER_AGENT']; # type de navigateur $reference = $_SERVER['HTTP_REFERER']; # URL de référence $url_demandee = $_SERVER['REQUEST_URI']; # page demandée /* on vérifie la correspondance avec une des entrées du tableau à la fois dans la page demandée et l'URL de référence cette dernière est souvent vide (non transmise) */ foreach($redirection as $key => $value) { if(eregi($key, $reference) || eregi($key, $url_demandee)) { $rep_fichier = $value; # on trouve $envoi_email = false; # envoi d'email inutile break; # on sort de la boucle } } /* si aucune occurrence trouvée précédemment on redirige les robots identifiés dans nos logs */ if($envoi_email && is_array($robots)) { foreach($robots as $key) { if(eregi($key, $agent_http)) { $rep_fichier = $renvoiRobots; $envoi_email = false; break; } } } /* composition de l'URL cible, email destinataire et objet */ $destination = "http://www.".$hostndd."/".$rep_fichier; $email = $maildest."@".$hostndd; if(!empty($hostndd_bis)) $email = $maildest."@".$hostndd_bis; $objet = "[".$hostndd."] Erreur ".$iderreur; /* si l'envoi du mail n'est pas annulé (via les deux boucles) */ if( $envoi_email ) { $message = "Le ".date("d m Y")." à ".date("H")."h".date("i"); $message .= "nDestination : $destination"; $message .= "nDemandé : $url_demandee"; $message .= "nIP : ".$_SERVER['REMOTE_ADDR']; # IP distant $message .= "nUSER_AGENT : $agent_http"; if(!empty($reference)) $message .= "nHTTP_REFERER : $reference"; @mail($email, $objet, $message); } //Signalement mail d'une erreur
- Compléter ce code par vos informations (le code est suffisamment commenté)
- Enregistrez, puis mettez en ligne le tout
Quand un utilisateur tombera sur une erreur 404, vous recevrez désormais un e-mail de ce type:

Sur cette image, l'erreur 404 a été provoqué lorsque l'utilisateur a tenté d'accéder à la page /test de votre site.
Mis en place sur mon site, tout fonctionne nikel

Benji
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
ElenWii Membre non connecté
-
Administrateur
- Voir le profil du membre ElenWii
- Inscrit le : 14/08/2009
- Site internet
- Groupes :
-
Equipe Graphique
ReidLos :
Ah Ah Ah Tu pourrais modifier le script avec les paramètres par défaut ? Je reçois pleins de mail du coup d'une personne qui a dû oublier de changer les infos ..
soupaloignon Membre non connecté
-
Modérateur
- Voir le profil du membre soupaloignon
- Inscrit le : 27/03/2009
- Site internet
- Groupes :
-
Equipe Rédaction
-
Equipe Modération
1/ Avant de poster votre question, faite une recherche sur le forum et/ou le site
2/ Plus votre question sera détaillée, plus les éventuelles réponses seront pertinentes
3/ Plus votre français sera correct, plus vous donnerez envie que l'on vous réponde
2/ Plus votre question sera détaillée, plus les éventuelles réponses seront pertinentes
3/ Plus votre français sera correct, plus vous donnerez envie que l'on vous réponde
4/ ==> Libérez les Huitres du bassin d'Arcachon <== 
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
benflovideo Membre non connecté
-
Modérateur
- Voir le profil du membre benflovideo
- Inscrit le : 13/03/2010
- Groupes :
-
Equipe Modération
-
Equipe Communication

Benji
Patoufix Membre non connecté
Booster Roquette
-
Booster Roquette
- Voir le profil du membre Patoufix
- Inscrit le : 13/11/2012
- Site internet
- Groupes :
Je suis le webmaster de ce site en préparation, et mon problème du moment c'est que je n'ai plus accès au site du à des changement chez Free, donc impossible de faire des modifications.
Désolé pour le dérangement
Patoufix
Édité par Patoufix Le 07/12/2012 à 16h18
Salut à tous
Monde...Raymonde et Patoufix...Patrice
Le site de Mon Moto Club en PHPBoost : www.mcleopards.fr
Notre Blog : Ma Fiat 850 : http://poukynette.wordpress.com
Mon coté Artiste : Peintures et Photos : http://www.photopat.free.fr
Monde...Raymonde et Patoufix...Patrice
Le site de Mon Moto Club en PHPBoost : www.mcleopards.fr
Notre Blog : Ma Fiat 850 : http://poukynette.wordpress.com
Mon coté Artiste : Peintures et Photos : http://www.photopat.free.fr
Patoufix Membre non connecté
Booster Roquette
-
Booster Roquette
- Voir le profil du membre Patoufix
- Inscrit le : 13/11/2012
- Site internet
- Groupes :
J'ai au moins accès en Ftp, j'ai remis le 404php d'origine en place le temps de retrouver mon accès total.
Patoufix
Salut à tous
Monde...Raymonde et Patoufix...Patrice
Le site de Mon Moto Club en PHPBoost : www.mcleopards.fr
Notre Blog : Ma Fiat 850 : http://poukynette.wordpress.com
Mon coté Artiste : Peintures et Photos : http://www.photopat.free.fr
Monde...Raymonde et Patoufix...Patrice
Le site de Mon Moto Club en PHPBoost : www.mcleopards.fr
Notre Blog : Ma Fiat 850 : http://poukynette.wordpress.com
Mon coté Artiste : Peintures et Photos : http://www.photopat.free.fr
Patoufix Membre non connecté
Booster Roquette
-
Booster Roquette
- Voir le profil du membre Patoufix
- Inscrit le : 13/11/2012
- Site internet
- Groupes :
Bon encore mes excuses pour le désagrément,
J'ai remis en place cette fonction qui est très pratique en mode de développement d'un site.
Merci pour votre travail,
Salut à tous
Monde...Raymonde et Patoufix...Patrice
Le site de Mon Moto Club en PHPBoost : www.mcleopards.fr
Notre Blog : Ma Fiat 850 : http://poukynette.wordpress.com
Mon coté Artiste : Peintures et Photos : http://www.photopat.free.fr
Monde...Raymonde et Patoufix...Patrice
Le site de Mon Moto Club en PHPBoost : www.mcleopards.fr
Notre Blog : Ma Fiat 850 : http://poukynette.wordpress.com
Mon coté Artiste : Peintures et Photos : http://www.photopat.free.fr
babsolune Membre non connecté
-
Administrateur
- Voir le profil du membre babsolune
- Inscrit le : 16/05/2008
- Site internet
- Groupes :
-
Equipe Développement
Patoufix Membre non connecté
Booster Roquette
-
Booster Roquette
- Voir le profil du membre Patoufix
- Inscrit le : 13/11/2012
- Site internet
- Groupes :
babsolune :
qui?
Bonjour,
Je ne comprend pas ton "Qui", peut tu éclairé ma lanterne
Salut à tous
Monde...Raymonde et Patoufix...Patrice
Le site de Mon Moto Club en PHPBoost : www.mcleopards.fr
Notre Blog : Ma Fiat 850 : http://poukynette.wordpress.com
Mon coté Artiste : Peintures et Photos : http://www.photopat.free.fr
Monde...Raymonde et Patoufix...Patrice
Le site de Mon Moto Club en PHPBoost : www.mcleopards.fr
Notre Blog : Ma Fiat 850 : http://poukynette.wordpress.com
Mon coté Artiste : Peintures et Photos : http://www.photopat.free.fr
Fazer Membre non connecté
Booster Fronde
-
Booster Fronde
- Voir le profil du membre Fazer
- Inscrit le : 23/05/2012
- Site internet
Je me permet de remonter ce topic, car je cherchais comment voir/récupérer l'adresse d'ou provenais les erreur 404 que je voyais.
Je recois bien le mail et l'erreur.
Mais, il ce trouve que dans la page d'erreur, j'ai des erreurs
. Je suis sur phpboost3 Code :
Suggestion : Undefined index: HTTP_REFERER dans le fichier /homez.540/*/www/member/404.php à la ligne 69
Suggestion : Undefined variable: redirection dans le fichier /homez.540/*/www/member/404.php à la ligne 77
Avertissement : Invalid argument supplied for foreach() dans le fichier /homez.540/*/www/member/404.php à la ligne 77
Inconnue : Function eregi() is deprecated dans le fichier /homez.540/*/www/member/404.php à la ligne 91
Inconnue : Function eregi() is deprecated dans le fichier /homez.540/*/www/member/404.php à la ligne 91
Inconnue : Function eregi() is deprecated dans le fichier /homez.540/*/www/member/404.php à la ligne 91
voici les lignes concerné par les erreurs.
Code :
$reference = $_SERVER['HTTP_REFERER']; # URL de référence //( Ligne 69 )
foreach($redirection as $key => $value) { // <== ( Ligne 77 )
if(eregi($key, $reference) || eregi($key, $url_demandee)) {
$rep_fichier = $value; # on trouve
$envoi_email = false; # envoi d'email inutile
break; # on sort de la boucle
}
}
if($envoi_email && is_array($robots)) {
foreach($robots as $key) {
if(eregi($key, $agent_http)) { // <== ( Ligne 91 )
$rep_fichier = $renvoiRobots;
$envoi_email = false;
break;
}
}
}
Pour la ligne 69
la configuration correspondrait a
Code :
# fichier de redirection (ex. plan.php) vide = index
$rep_fichier = "/";
A savoir que j'ai essayé avec ou sans /, avec index, index.php etc etc
la ligne 77 correspondrais a une fonction qui n'existe pas en l'occurence : " redirection" et a une erreur de foreach ?
Le reste, je ne comprend pas
Argali Membre non connecté
Booster Bazooka
-
Booster Bazooka
- Voir le profil du membre Argali
- Inscrit le : 09/11/2008
Je suis en V4,est ce que cela fonctionne également??
Merci
<img title="" src="http://dl.free.fr/uuh8diwxB.jpeg" alt="" />
je me lance dans photoshop....
je me lance dans photoshop....
benflovideo Membre non connecté
-
Modérateur
- Voir le profil du membre benflovideo
- Inscrit le : 13/03/2010
- Groupes :
-
Equipe Modération
-
Equipe Communication
@Argali: Je n'ai pas tester, donc à essayer en local par exemple

Benji
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie
