Gestion des erreurs

Soyez le premier à donner votre avis sur cette source.

Snippet vu 12 283 fois - Téléchargée 28 fois

Contenu du snippet

On trouve couremment sur le net (sur multimania par exemple) des moyens pour gerer les erreurs 404. Seulement il existe d'autre types d'erreur. Voici comment gerer toutes les erreurs HTML (erreurs de 400 à 415 et 500 à 505, soit tous les messages d'erreur standarts)

Source / Exemple :


1) creez un fichier .htaccess qui contiendra les lignes de code suivantes:

ErrorDocument 400 /erreur.php?erreur=400
ErrorDocument 401 /erreur.php?erreur=401
ErrorDocument 402 /erreur.php?erreur=402
ErrorDocument 403 /erreur.php?erreur=403
ErrorDocument 404 /erreur.php?erreur=404
ErrorDocument 405 /erreur.php?erreur=405
ErrorDocument 406 /erreur.php?erreur=406
ErrorDocument 407 /erreur.php?erreur=407
ErrorDocument 408 /erreur.php?erreur=408
ErrorDocument 409 /erreur.php?erreur=409
ErrorDocument 410 /erreur.php?erreur=410
ErrorDocument 411 /erreur.php?erreur=411
ErrorDocument 412 /erreur.php?erreur=412
ErrorDocument 413 /erreur.php?erreur=413
ErrorDocument 414 /erreur.php?erreur=414
ErrorDocument 415 /erreur.php?erreur=415
ErrorDocument 500 /erreur.php?erreur=500
ErrorDocument 501 /erreur.php?erreur=501
ErrorDocument 502 /erreur.php?erreur=502
ErrorDocument 503 /erreur.php?erreur=503
ErrorDocument 504 /erreur.php?erreur=504
ErrorDocument 505 /erreur.php?erreur=505

2)Creez un fichier "erreur.php" contenant les lignes suivantes:

<?

//on recupere la variable d'erreur
$_GET['erreur'];

//on la modifie
switch($erreur){
case 400:
$erreur.=" - erreur de syntaxe dans l\'adresse du document";
break;
case 401:
$erreur.=" - pas d\'autorisation d\'accès au document";
break;
case 402:
$erreur.=" - accès au document soumis au paiement";
break;
case 403:
$erreur.=" - pas d'autorisation d\'accès au serveur";
break;
case 404:
$erreur.=" - la page demandée n'existe pas";
break;
case 405:
$erreur.=" - méthode de requête du formulaire non autorisée";
break;
case 406:
$erreur.=" - requête non acceptée par le serveur";
break;
case 407:
$erreur.=" - autorisation du proxy nécessaire";
break;
case 408:
$erreur.=" - temps d\'accès à la page demandée expiré";
break;
case 409:
$erreur.=" - l\'utilisateur doit soumettre à nouveau avec plus d\'infos";
break;
case 410:
$erreur.=" - cette ressource n\'est plus disponible";
break;
case 411:
$erreur.=" - le serveur a refusé la requête car elle n\'a pas de longueur";
break;
case 412:
$erreur.=" - la précondition donnée dans la requête a échoué";
break;
case 413:
$erreur.=" - l\'entité de la requête était trop grande";
break;
case 414:
$erreur.=" - l\'URI de la requête était trop longue";
break;
case 415:
$erreur.=" - type de média non géré";
break;
case 500:
$erreur.=" - erreur interne du serveur";
break;
case 501:
$erreur.=" - requête faite au serveur non supprimée";
break;
case 502:
$erreur.=" - mauvaise passerelle d\'accès";
break;
case 503:
$erreur.=" - service non disponible";
break;
case 504:
$erreur.=" - temps d\'accès à la passerelle expiré";
break;
case 505:
$erreur.=" - version HTTP non gérée";
break;
}

//on redirige vers la page d'erreur en indiquant l'erreur
//Ici c'est index mais vous pouvez changer.
//En bas de cette page s'inscriera un message, donc faites gaffe au pseudo-
//frames, ca risque de les gacher.
include('index.php');
print('<div align="center"><h3>Une erreur de type '.$erreur.' s\'est produite.</h3></div>');

?>

Conclusion :


Bon voila, j'ai un peu modifié à la barbare mon script original (en demo sur http://membres.lycos.fr/entraideberthelot mais venez pas trop nombreux vous inscrire, c'est un site que j'ai fait pour mon lycée), mais ca devrait marcher. Voila il existe surement des methodes plus simple mais celle-là marche bien.

A voir également

Ajouter un commentaire Commentaires
Messages postés
77
Date d'inscription
vendredi 24 novembre 2000
Statut
Membre
Dernière intervention
28 novembre 2007

Bien pas moi ;) Tres uties merci ;)
Messages postés
72
Date d'inscription
mardi 5 juillet 2005
Statut
Membre
Dernière intervention
8 février 2009

Juste un petit détail... La plupart des hébergeurs proposent une gestion des erreurs dans la console d'admin... Donc assez inutile de s'embêter à coder!
Messages postés
133
Date d'inscription
lundi 26 janvier 2009
Statut
Membre
Dernière intervention
24 novembre 2014

fser : le code est en PHP...
Messages postés
74
Date d'inscription
vendredi 26 septembre 2003
Statut
Membre
Dernière intervention
23 avril 2005

c'est quoi le rapport avec le php ?
Messages postés
133
Date d'inscription
lundi 26 janvier 2009
Statut
Membre
Dernière intervention
24 novembre 2014

moi je trouve ce code plutôt utile !
peut etre qu'il y a + simple mais en tout cas ça me va bien ;)
Afficher les 8 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.