Gestion des erreurs

4/5 (8 avis)

Snippet vu 12 450 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
thekid23 Messages postés 77 Date d'inscription vendredi 24 novembre 2000 Statut Membre Dernière intervention 28 novembre 2007
30 nov. 2006 à 00:11
Bien pas moi ;) Tres uties merci ;)
The_magicien Messages postés 72 Date d'inscription mardi 5 juillet 2005 Statut Membre Dernière intervention 8 février 2009
17 mai 2006 à 19:30
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!
Rrominet Messages postés 133 Date d'inscription lundi 26 janvier 2009 Statut Membre Dernière intervention 24 novembre 2014
17 mars 2004 à 19:24
fser : le code est en PHP...
fser Messages postés 74 Date d'inscription vendredi 26 septembre 2003 Statut Membre Dernière intervention 23 avril 2005
16 mars 2004 à 21:57
c'est quoi le rapport avec le php ?
Rrominet Messages postés 133 Date d'inscription lundi 26 janvier 2009 Statut Membre Dernière intervention 24 novembre 2014
15 mars 2004 à 02:12
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.