De laatste manier van Robert heeft mijn voorkeur, ik gebruik het zelf ook.
Echter dan wel met een homepage voor het geval er niets of een foutieve pagina is opgegeven:
<?php
$toegestaan=array('pagina1','pagina2','pagina3','pagina4'); //Voeg hier alles wat achter ?pagina= mag staan
//Controleren of er een pagina is meegegeven en of de pagina voorkomt in de array an toegestaande paginas.
if (isset($_GET['pagina']) && in_array($pagina, $toegestaan)){
// de binnengehaalde variabele omzetten naar kleine letters
$pagina=strtolower($_GET['pagina']);
//Includen
include($pagina.".php");
}
else{
include("home.php");
}
?>
[edit]
Typo's door lege batterijen toetsenbord..
[/edit]
De laatste manier van Robert heeft mijn voorkeur, ik gebruik het zelf ook.
Echter dan wel met een homepage voor het geval er niets of een foutieve pagina is opgegeven:
Klopt Andries, maar die zat er in de Tutorial ook wel ingebakken, het ging nu even om het vergelijken. :)
[quote=PHP Newbie schreef op 10.09.2006 21:35]kun je de hele tijd die array gaan updaten bij het toevoegen van een pagina, niet echt de efficientste oplossing kalle...
Klopt PHP-Newbie, maar je maakt ook de links ;) (die kan je evt ook automatisch uit je array halen als je dat wilt).
Dus:
<?
$paginas=array('pagina1.php','pagina2.php');
foreach($paginas as $linkje){
echo '<a href="'.$linkje.'">'.$linkje.'</a>';
}
?>
Genereerd je menu.. (kan je ook een 2e array gebruiken met namen voor de pagina's)
PHP Newbie, het is maar kijken wat efficienter is.. (een nieuwe case aanmaken, of 1 item toevoegen in je array... )
Zeker voor grote sites met veel pagina's is die oplossing veel korter, en ook net zo eenvoudig in je onderhoud. Het is maar net wat je wilt.
(even ter voorbeeld:
<?php
$toegestaan=array('pagina1','pagina2','pagina3','pagina4');
// controleren of er een pagina is meegegeven)
if (isset($_GET['pagina'])){
// de binnengehaalde variabele omzetten naar kleine letters
$pagina=strtolower($_GET['pagina']);
// controleren of de pagina voorkomt in de array
if (in_array($pagina, $toegestaan)){
// wanneer die toegestaan is includen
include($pagina.".php");
}
}
?>
Zet diezelfde 5 pagina's eens in een switch/case module, en kijk dan nog eens wat gemakkelijker is. En als je toch bezig bent, voeg dan bij beide opties eens 1, of 2 paginás toe, en kijk welke gemakkelijker en korter is ;)[/quote]
In dat 1e scriptje zie foreach.
Maar dat heb je toch niet nodig.
als de variabele $paginas verandert in $linkje is die foreach toch nutteloos of niet?
Euh, ik heb het hier zo gedaan dat die automatisch een "linkje" maakt naar de gevraagde pagina. (ook dat is dus mogelijk met deze oplossing)
En dan is de foreach wel nodig, omdat die dan alle array items doorloopt.. :)
Het was maar een simpel voorbeeldje van uitbreidingsmogelijkheden voor dit scriptje.