Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zér0 > Les tutoriels > Non-Officiels > Site Web > PHP > Points particuliers > Lecture du tutoriel

Page d'erreur perso

Avatar
Auteur : DeHix
Créé : le 07/03/2006 09:46:58
Modifié : le 13/02/2008 13:22:58
Noter et commenter ce tutoriel
Imprimer ce tutoriel
Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
Vous en avez marre de voir les petites pages habituelles de Mozilla Firefox ? Opera ? Ou encore... Internet Explorer :-° ? :
404 Not Found ? ou 500 Internal error ?
Grâce à ce tuto, vous pourrez personnaliser ces pages !

Cela risque cependant de ne pas fonctionner sur certains hébergeurs : si c'est le cas, faites-moi signe.
Sommaire du chapitre :

Explications

Je vais vous expliquer ici comment faire pour créer une page d'erreur personnalisée, comme celle du SdZ.
Exemple : allez sur http://www.siteduzero.com/dkljd, ça va vous afficher une erreur 404, ou alors quand le Site du Zér0 est saturé, c'est l'erreur 500.
C'est un truc assez court, mais c'est bien pratique !

Matériel nécessaire :



Créez maintenant un fichier .htaccess que vous placerez à la racine de votre site, et insérez ceci : (en changeant bien sûr, http://www.siteduzero.com par l'adresse de votre site web)
Code : Apache
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
ErrorDocument 400 http://www.siteduzero.com/400.php
ErrorDocument 401 http://www.siteduzero.com/401.php
ErrorDocument 402 http://www.siteduzero.com/402.php
ErrorDocument 403 http://www.siteduzero.com/403.php
ErrorDocument 404 http://www.siteduzero.com/404.php
ErrorDocument 405 http://www.siteduzero.com/405.php
ErrorDocument 500 http://www.siteduzero.com/500.php
ErrorDocument 501 http://www.siteduzero.com/501.php
ErrorDocument 502 http://www.siteduzero.com/502.php
ErrorDocument 503 http://www.siteduzero.com/503.php
ErrorDocument 504 http://www.siteduzero.com/504.php
ErrorDocument 505 http://www.siteduzero.com/505.php

Mettez les liens en absolu pour l'instant, nous allons voir dans quel cas les utiliser en relatif.


C'est bien beau les 400, 401, 402, 403, 404, 500... mais ça veut dire quoi ?


  • 400 : échec de l'analyse HTTP
  • 401 : mauvais pseudo/mdp dans le .htaccess
  • 402 : le client doit reformuler sa demande avec les bonnes données de paiement.
  • 403 : requête interdite
  • 404 : page non trouvée
  • 405 : méthode non autorisée
  • 500 : erreur interne au serveur ou serveur saturé
  • 501 : le serveur ne supporte pas le service demandé
  • 502 : mauvaise passerelle
  • 503 : service indisponible
  • 504 : trop de temps à la réponse
  • 505 : version HTTP non supportée


Maintenant, vous devez vous dire : "je mets quoi dans 401.php... ?".

Vous y mettez ce que vous voulez.
Exemple pour 401.php : "vous avez tapé un mauvais pseudo / password".
Exemple pour 404.php : "page non trouvée".
Vous l'aurez compris, les erreurs en 400 sont des erreurs du client, et les 500, du serveur, je vous laisse mettre en forme tout ça :-° !
Le problème, c'est que ça va renvoyer vers une autre erreur : l'erreur 200 (page qui s'est correctement chargée) ; donc, je ne sais pas si on peut l'appeler "erreur".


Donc, avec les sites de référencement ayant un robot, comme Google ou MSN Search, il y a un léger problème : le moteur de recherche n'est pas en capacité de distinguer si la page est une page d'erreur ou non, il affichera alors plein de liens vers des pages d'erreurs lors d'une recherche.
Code : Apache
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
ErrorDocument 400 /400.php
ErrorDocument 401 /401.php
ErrorDocument 402 /402.php
ErrorDocument 403 /403.php
ErrorDocument 404 /404.php
ErrorDocument 405 /405.php
ErrorDocument 500 /500.php
ErrorDocument 501 /501.php
ErrorDocument 502 /502.php
ErrorDocument 503 /503.php
ErrorDocument 504 /504.php
ErrorDocument 505 /505.php

Vous pouvez également faire un petit message, sans créer une nouvelle page, comme ceci :
Code : Apache
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
ErrorDocument 400 "Echec de l'analyse HTTP"
ErrorDocument 401 "Mauvais pseudo/password"
ErrorDocument 402 "Le client doit reformuler sa demande avec les bonnes données de paiement."
ErrorDocument 403 "..."
ErrorDocument 404 ""
ErrorDocument 405 ""
ErrorDocument 500 ""
ErrorDocument 501 ""
ErrorDocument 502 ""
ErrorDocument 503 ""
ErrorDocument 504 ""
ErrorDocument 505 ""

Vous l'aurez compris : entre les guillemets, vous devez mettre le message d'erreur.
Mais c'est énervant de devoir créer une nouvelle page à chaque fois ! Eh bien vous pouvez en créer une seule qui contienne toutes les erreurs avec du php ; regardez :
(.htaccess)
Code : Apache
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
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 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

Après, on va voir quelle est l'erreur qu'on affiche par rapport à la valeur du GET erreur.
(erreur.php)
Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
switch($_GET['erreur'])
{
   case '400':
   echo 'Echec de l\'analyse HTTP';
   break;
   case '401':
   echo 'Le pseudo et/ou le mot de passe n\'est pas correct !';
   break;
   case '402':
   echo 'Le client doit reformuler sa demande avec les bonnes données de paiement.';
   break;
   case '403':
   echo 'Requête interdite !';
   break;
   case '404':
   echo 'La page n\'existe pas ou n\'existe plus !';
   break;
   case '405':
   echo 'Méthode non autorisée';
   break;
   case '500':
   echo 'Erreur interne au serveur ou serveur saturé';
   break;
   case '501':
   echo 'Le serveur ne supporte pas le service demandé';
   break;
   case '502':
   echo 'Mauvaise passerelle';
   break;
   case '503':
   echo ' Service indisponible';
   break;
   case '504':
   echo 'Trop de temps à la réponse ';
   break;
   case '505':
   echo 'Version HTTP non supportée ';
   break;
   default:
   echo 'Erreur !!';
}
?>

S'assurer que les robots ne viendront pas

Comme dit plus haut, il y a un risque que vos pages d'erreurs soient référencées dans les moteurs de recherches, nous allons donc leur interdire l'accès.

Méthode



Nous allons implanter un fichier robots.txt à la racine de notre page.
Il aura pour but de dire à tel ou tel robot de ne pas visionner telle ou telle page.

Voici comment se présente ce fichier :
Code : Autre - robots.txt
1
2
User-Agent: 
Disallow:


Dans User-Agent, vous mettrez la liste des robots que vous voulez interdire, mais ici, nous allons utiliser l'étoile (*) qui va interdire l'accès à tous les robots.
Et dans Disallow, vous mettrez la liste des pages à interdire, les unes après les autres, en réécrivant Disallow pour chaque page.
Code : Autre - robots.txt
1
2
3
4
5
User-Agent: *
Disallow: /400.php
Disallow: /401.php
Disallow: /402.php
Disallow: /403.php


STOP ! Je vais pas toutes les mettre alors qu'il y a une trentaine d'erreurs qui existent si ?


Non en effet, vous pouvez interdire l'accès à tout un dossier, donc, je vous conseille vivement de mettre ces pages dans un dossier à part de ne pas oublier de changer l'URI/URL que vous avez mis dans le fichier .htaccess.
Pour interdire l'accès à un dossier, pas de mystères, cela se passe comme pour les fichiers.
Code : Autre - robots.txt
1
2
User-Agent: *
Disallow: /nom_du_dossier_ou_se_trouvent_les_erreurs/


Tout de suite plus lisible n'est-ce pas ?

Et voilà : ce n'est pas plus beau comme ça ?

Bien entendu, vous pouvez faire votre propre mise en page, avec le CSS, etc ! mais bon... que ça ne devienne pas une usine à gaz :-°

Merci à tous les Zér0s pour l'aide et le soutien qu'ils m'ont apportés pour ce tuto.

Pour tout problème, veuillez me le signaler par MP, svp.
Auteur : DeHix
Noter et commenter ce tutoriel
Imprimer ce tutoriel

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | Fil RSS | XHTML 1.0 | CSS 2.0
Édité par Simple IT SARL : Nous contacter | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 309 Zéros connectés | Requêtes SQL 7 requêtes | Temps de génération de la page : Total (SQL) 0.0596s (0.0489s)