Door
David Willems
op 11-06-2010 13:38
gewijzigd op 11-06-2010 13:39
2.130 views
Hoi,
ik ga in het verlog de website van mijn scouts en grondig opkuisen en updaten. Nu bestaat de site uit allemaal php files, dus via de navigatiebar wordt gewoon gelinkt naar home.php, nieuws.php, etc.
Nu zie ik op veel sites dat alle paginas opgeroepen worden via bv.
index.php?p=nieuws
Nu, wat is de code hierachter? Allemaal includes? Kan iemand me aub eens een voorbeeldje geven?
En ik zie dat op deze site navigeert tussen slahes? Hoe gaat dat in zijn werkt?
$pagina = $_GET['p'];
if($pagina == 'home') {
// Toon de home pagina door middel van include of database etc
}elseif($pagina == 'nieuw') {
// Toon de nieuws pagina door middel van include of database etc
}else{
// Toon het normale scherm (beginscherm)
}
Lijkt me inderdaad handiger om dat met een switch te doen.
Wat je ook kunt doen is de pagina's die mogen worden aangeroepen in een array zetten, vervolgens kijken of de opgeroepen pagina in die array zit en vervolgens die pagina includen of een andere pagina laten zien als deze niet bestaat.
Ik gebruik meestal onderstaande code.
De glob zet alle bestanden in een array die in de zelfde map als de index.php staan.
Daarna word er gekeken of het gewenste bestand in de array komt.
Zo niet, een error weegeven. Wel in de array is weergeven.
Als er geen bestand opgevraagt wordt wordt er een standaard bestand getoond.
<?php
$p = !isset($_REQUEST['p'])?"":rtrim($_REQUEST['p']);
$paginas = glob('*.php');
if (!empty($p))
{
if (in_array($p, $paginas))
include('./'.$p);
else
echo ".ERROR!<BR><BR>Deze pagina is niet (meer) bekend bij ons...";
}
else
include("./nieuws.php");
?>