Gestion des erreurs

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

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.