Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

GESTION DES ERREURS


Information sur la source

Catégorie :Astuces Niveau : Débutant Date de création : 14/03/2004 Vu : 7 489

Note :
9,67 / 10 - par 6 personnes
9,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

Description

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

  • 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>');
  • ?>
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.
 

Commentaires et avis

signaler à un administrateur
Commentaire de Mills le 14/03/2004 20:31:50

Ca va sans plus, mais bon ça peut etre utile

signaler à un administrateur
Commentaire de Aramiil le 14/03/2004 21:47:50

c'est vrai que c'est pas parfait mais bon je pense que ca peut toujours servir.

signaler à un administrateur
Commentaire de matrey le 14/03/2004 23:17:25

Tu peux simplement mettre

ErrorDocument 400 /erreur.php

et récupérer le numéro de l'erreur dans ton script avec

$_SERVER["REDIRECT_STATUS"]

Autre chose, les erreurs courantes sont : 401, 403, 404, 408, 500 et 503 (Les autres sont jamais représentées)

signaler à un administrateur
Commentaire de Rrominet le 15/03/2004 02:12:31

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

signaler à un administrateur
Commentaire de fser le 16/03/2004 21:57:18

c'est quoi le rapport avec le php ?

signaler à un administrateur
Commentaire de Rrominet le 17/03/2004 19:24:18

fser : le code est en PHP...

signaler à un administrateur
Commentaire de The_magicien le 17/05/2006 19:30:21

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!

signaler à un administrateur
Commentaire de thekid23 le 30/11/2006 00:11:06

Bien pas moi ;) Tres uties merci ;)

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,125 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.