8797 sujets

Développement web côté serveur, CMS

Bonjour,

J'ai un annuaire dans lequel j'inclus des éléments selon certains paramètres, sous cette forme :


if($_GET[p] == "top-sites") { include("top_clics.php"); }
else if ($_GET[p] == "contact") { include("contact.php"); }
else {

if (empty($cat_id)) //page d'accueil
{
...
}
else
{
..
}}


Je voudrais mettre en place une page d'erreur 404 personnalisée (avec le htaccess ça ne fonctionne pas).
Toutes les pages qui n'existent pas ou plus amènent actuellement vers la page d'accueil. Comment résoudre ce problème ?

Merci de votre aide
Salut,

pas compris ta demande...

webcrea a écrit :

avec le htaccess ça ne fonctionne pas
Pourquoi ?
Avec le htaccess ça ne fonctionne pas sans doute parce qu'en php, j'indique via le "else {" que toutes les pages reviennent à la page d'accueil s'il n'y pas de conditions préalables.
Donc mon script est fait de telle manière qu'il n'y a jamais d'erreur 404 même pour des pages qui n'existent pas (tout revient vers la page d'accueil). Comment modifier mon bout de script pour qu'il prennent en compte les pages qui n'existent pas et indiquer à ce moment là un entête d'erreur 404 ?

Difficile d'être très clair, désolé.
J'espère que vous pourrez m'aider.
Tu peux mettre dans ta dernière condition, le tout dernier else un

header("HTTP/1.0 404 Not Found");
include('404.php');
exit;
J'ai tenté de le mettre dans le derner else mais les 404 reviennent toujours dans cette condition :

if (empty($cat_id))


Comment faire ?
Modifié par webcrea (17 Dec 2008 - 18:00)
Salut,

ce serait bien d'être un peu plus clair. Smiley cligne

D'après ce que j'en comprends tu parles d'un site dynamique avec des uri sous la forme www.example.com/index.php?p=contact&cat_id=2 et ce que tu appelles page 404 correspond en fait à un p ou à un cat_id qui n'existe(nt) plus.

Donc si je ne suis pas complètement à côté de la plaque :

1) la page 404 via htaccess est toujours utile puisqu'on peut demander www.example.com/indox.php (qui n'existe pas)

2) comment récupères-tu $cat_id ? quelle est la règle de gestion pour afficher la page 404 ?
webcrea a écrit :
J'ai tenté de le mettre dans le dernier else mais les 404 reviennent toujours dans cette condition :

if (empty($cat_id))


Comment faire ?


Mais tu as quoi dans ce bout de code ? Parce que tu dis que dans ce cas ça te renvoie toujours à la page d'accueil, mais tu as aussi un commentaire qui laisse penser que c'est exactement le but de ce IF !!

Dans ce cas, au lieu du renvoi vers la page d'accueil, il faut y mettre le code de Tymlis.
Modifié par mistike (17 Dec 2008 - 21:36)