Ik heb nog een manier gevonden op het internet waar Curahee Q het over had.
Lijkt me ook nog handig, maar heb daar paar vragen over:
PHP Code:
<?php
// Kijk of het bestand zelf bestaat
if( file_exists($_SERVER['DOCUMENT_ROOT'] . $_SERVER['REQUEST_URI'])
AND ($_SERVER['SCRIPT_FILENAME'] != $_SERVER['DOCUMENT_ROOT'] . $_SERVER['REQUEST_URI'])
AND ($_SERVER['REQUEST_URI']!="/")){
$url = $_SERVER['REQUEST_URI'];
include($_SERVER['DOCUMENT_ROOT'] . $url);
}
// Pak de parameters van de URL
$url = strip_tags($_SERVER['REQUEST_URI']);
$url_array = explode("/",$url);
array_shift($url_array); // De eerste is leeg
if ($url_array[0] == "home"){
$include = "pages/index.php";
}elseif ($url_array[0] == "nieuws"){
if ($url_array[1]){
// Er is een nieuwsbericht, ID opslaan
$nieuwsID = $url_array[1];
}
$include = "pages/nieuws.php";
}elseif ($url_array[0] == "404"){
$include = "pages/404.php";
}
// Als er geen pagina geselecteerd is, gaan we de 404 laten zien
if (!isset($include)){
header('location:/404/');
}
include('include/header.php');
include($include);
include('include/footer.php');
?>
Bovenaan kijkt hij eerst of de fysieke file bestaat, is dat zo dan wordt deze geinclude.
Daarna gaat hij echter de url controleren op "home", "nieuws", etc.... , maar als bovenaan al is geconstateerd dat de file bestaat is $include toch nergens gezet en komt hij altijd hier terecht :
PHP Code:
if (!isset($include)){
header('location:/404/');
}
Ik snap de manier van werken natuurlijk wel, maar het script lijkt mij gewoon niet optimaal.
Nuja ik zou in ieder geval mijn manier willen voortzetten en gewoon de error wegkrijgen.