Gerer les erreurs 404 en php

Gerer les erreurs 404 en php - PHP - Programmation

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?
Reply

Marsh Posté le 06-05-2003 à 17:36:02   

Reply

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.

Reply

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  :D :
[:ark]

Reply

Marsh Posté le 06-05-2003 à 18:19:35    

Spir a écrit :

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  :D :
[:ark]  


Merci Spire tes un boss :sol: !....


---------------
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?
Reply

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.


---------------
each day I don't die is cheating
Reply

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.


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

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().

Reply

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.

Reply

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.


Message édité par gatorette le 07-05-2003 à 15:34:42

---------------
each day I don't die is cheating
Reply

Marsh Posté le 08-05-2003 à 16:23:37    

berceker qu'elle est ton hébergeur? [:at war with emo]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed