Ik heb een scriptje genomen uit de script-sectie hier.
Nu heb ik een probleem, het script op zich werkt wel maar ik zou graag een default pagina hebben welke nu niet werkt.
Ik heb (zoals hieronder) al geprobeerd een pagina te includen als er een pagina bijvoorbeeld niet bestaat maar dat doet hij dus ook niet.
<?php
$aPaginas = array(
'home', 'lesrooster', 'fotos', 'gastenboek', 'activiteiten', 'contact', 'sponsors'
);
$_GET['pagina'] = isset($_GET['pagina']) ? $_GET['pagina'] : 'home'; // Als de pagina niet is ingevuld, neem de hoofdpagina
if(in_array($_GET['pagina'], $aPaginas))
{
if(file_exists($_GET['pagina'] . '.php'))
{
include $_GET['pagina'] . '.php';
} else
{
include '404.php'; // php pagina bestaat niet -> 404
}
} else
{
include '404.php'; // pagina bestaat niet -> 404
}
Het is een beetje primitief, maar it does the trick. Je checkt handmatig of de pagina al dan niet bestaat, dus kan er geen verkeerde code worden geïnclude.
<?php
// werken met constants is altijd handig
define('ROOT', dirname(__FILE__).DIRECTORY_SEPARATOR);
// haal alle pagina's op uit %root%/pages/
// die eindigen met .php
$pages = glob(ROOT.'pages'.DIRECTORY_SEPARATOR.'*.php');
// pak alleen de naam van het bestand
$pageNames = array_map('basename', $pages);
if (!isset($_GET['p'])) {
$_GET['p'] = 'home';
}
if (in_array($_GET['p'].'.php', $pageNames)) {
// include het bestand
require ROOT.'pages'.DIRECTORY_SEPARATOR.$_GET['p'].'.php';
} else {
// include de 404 error pagina
require ROOT.'error'.DIRECTORY_SEPARATOR.'404.php';
}
?>