Page 404 dans un moteur basé sur des fichiers en PHP
Si un utilisateur saisit une URL incorrecte dans la barre d'adresse, nous devons afficher une page d'erreur. Laissons le contenu de la page d'erreur être stocké dans un fichier correspondant :
<div>
page not found
</div>
Afin de déterminer l'incorrection de la requête, nous devons vérifier l'existence du fichier de contenu correspondant à l'URL demandée :
<?php
$path = 'view' . $url . '.php';
if (file_exists($path)) {
// le fichier existe
} else {
// le fichier n'existe pas
}
?>
Donnons le fichier de contenu, s'il existe, et le fichier d'erreur, s'il n'y a pas de contenu :
<?php
$path = 'view' . $url . '.php';
if (file_exists($path)) {
$content = file_get_contents($path);
} else {
$content = file_get_contents('view/404.php');
}
?>
Dans le cas d'une erreur, nous devons envoyer au
navigateur un en-tête avec l'erreur 404 afin
de signaler explicitement que la page est introuvable.
Faisons cela :
<?php
$path = 'view' . $url . '.php';
if (file_exists($path)) {
$content = file_get_contents($path);
} else {
header('HTTP/1.0 404 Not Found');
$content = file_get_contents('view/404.php');
}
?>
Implémentez dans votre moteur la délivrance d'une page
d'erreur 404.