Gerer les erreurs 404 en php - PHP - Programmation
Marsh Posté le 06-05-2003 à 17:49:01
a mon avis c'est pas possible.
le server web detecte que l'adresse est invalide et retourne le code 404 au client (a moins qu'il soit configurer pour rediriger les 404 sur une autre page) et dans ce cas PHP n'intervient pas.
Marsh Posté le 06-05-2003 à 18:07:21
Citation : a mon avis c'est pas possible. |
Si!
http://allhtml.com/php/php466.php
Je me permet même si je suis mal placé pour le dire, il est bien ce smiley :
Marsh Posté le 06-05-2003 à 18:19:35
Spir a écrit :
|
Merci Spire tes un boss !....
Marsh Posté le 06-05-2003 à 18:39:41
Juste une petite remarque :
berceker a écrit : Car je crois que mon hebergeur ne possede pas de pages personnalisées... |
ALL HTML a écrit a écrit : Tout d'abord, il faut intercepter l'erreur afin de rediriger le visiteur vers une page prévue pour lui indiquer qu'une erreur s'est produite et qu'il peut en informer le webmaster. Cette redirecton se fait en plaçant, à la racine du serveur, le fichier .htaccess contenant la ligne suivante : ErrorDocument 404 /erreurs/err404.php3 |
La solution proposée par ALL HTML impose la modification de la configuration du serveur au travers de la définition de pages d'erreurs personnalisées. Ce qui n'est apparemment pas possible dans le cas de berceker.
A ma connaissance, il n'est pas possible de faire autrement. En effet, c'est le serveur qui traîte la demande du client. Si la page demandée n'existe pas (erreur 404), il renvoie une page d'erreur (définie sous Apache par la commande ErrorDocument). Ce n'est qu'après (si la page d'erreur est en PHP) que le PHP intervient. Il est donc trop tard pour faire quoi que ce soit !
Je pense tout de même à une autre solution (qui ne répond pas à tous les cas et qui est un peu lourde) : au lieu de faire des liens vers mapage.php, tu fais des liens vers check.php?page=mapage.php et dans le script check.php tu vérifie tout d'abord que mapage.php existe. Si elle existe, tu fais une redirection classique ; sinon tu affiche ta page personnalisée. Le problème est que tu n'auras pas les erreurs quand l'adresse est entrée manuellement, que ça oblige à changer toutes tes pages et que ça alourdit tout.
Je pense cependant que c'est la seule solution si tu ne peux pas configurer le serveur.
Marsh Posté le 06-05-2003 à 18:44:05
Ce n'est pas parce que l'hébergeur n'a pas de page 404 personnalisée qu'on ne peux pas la définir avec un .htaccess.
Marsh Posté le 07-05-2003 à 10:08:13
c'est une bonne solution mais cela ne regle pas totalement le problème des erreurs d'appelle de fichier mais effectivement je peux gérer la presence du fichier via la fonction file_exist().
Marsh Posté le 07-05-2003 à 11:18:45
bon ben j'ai essayé mais aucun resultat en plus c'est sur mon serveur de ma machine w2k+apache mais aucun resultat.
Marsh Posté le 07-05-2003 à 15:34:19
gm_superstar a écrit : Ce n'est pas parce que l'hébergeur n'a pas de page 404 personnalisée qu'on ne peux pas la définir avec un .htaccess. |
C'est vrai que j'ai peut être traduit un peu vite qu'il ne pouvait pas du tout changer la configuration.
berceker a écrit : c'est une bonne solution mais cela ne regle pas totalement le problème des erreurs d'appelle de fichier mais effectivement je peux gérer la presence du fichier via la fonction file_exist(). |
et aussi... a écrit : bon ben j'ai essayé mais aucun resultat en plus c'est sur mon serveur de ma machine w2k+apache mais aucun resultat. |
Je n'ai pas testé mais ça doit être possible. Par contre, d'après les commentaires sur le site PHP.net, la fonction file_exists à l'air assez particulière. Peut être que la fonction fopen est plus adaptée (ou une autre).
Cependant, au vu des défauts de la solution, je ne pense pas que cela vaille le coup de la mettre en place.
Marsh Posté le 06-05-2003 à 17:36:02
Bonjours a tous.
J'aurais voulus savoir s'il étais possible en php de detecté une page demandé non existante (erreur 404).
Car je crois que mon hebergeur ne possede pas de pages personnalisées et je voudrais gérer cela via le PHP.
Il me semblais qu'il etais possible via le header (il me semble.)
Merci a tous.
---------------
Si je suis près de toi c'est soit pour t'embrasser ou te croquer, alors à ce moment là rappelle toi de ce que tu m'as fait. du bien ou du mal?