Uitleg
Dit is een verkorte versie van de "switch" functie die bij de andere tutorials over hetzelfde onderwerp wordt gebruikt.
In feite doet dit script precies hetzelfde, alleen bij veel verschillende pagina's op de site, is dit een veel kortere methode.
Ik ga er wel vanuit dat de layout voor een groot deel wel klaar is, dit is alleen het deel voor de include van de verschillende paggina's.
Array maken
Om te beginnen maken we een array met daarin de namen van de toegestane pagina's.
2
3
4
// toegestane pagina's in een array zetten
$toegestaan=array("pagina1","pagina2","pagina3","pagina4","pagina5","pagina6");
?>
Binnenhalen gegevens en controleren
In dit voorbeeld sta ik alleen pagina's met kleine letters toe, dus ik zet ook de binnengehaalde gegevens om naar kleine letters. Dit is overigens helemaal aan te passen naar eigen wensen.
Met de in_array functie wordt gekeken of de pagina is toegestaan (dat wil zeggen of de naam in de array staat) Wanneer de pagina is toegestaan, wordt die geïnclude.
2
3
4
5
6
7
8
9
10
11
12
13
14
// 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");
}
}
?>
Wanneer pagina niet is toegestaan
Met het vorige stukje erbij zijn we er nog niet helemaal. Wanneer het een niet toegestane pagina is, dus dat de meegegeven pagina niet in de array staat, dan doet die nu nog niets. Wanneer dit gebeurt, moet er een standaard pagina worden geïnclude.
Links
Links moeten natuurlijk ook worden gemaakt, links zien er op de volgende manier uit:
pagina.php is de naam van je pagina. ?pagina is voor de $_GET functie, en pagina1 is in dit geval de naam van de pagina die je wilt includen.
Formulieren Later toegevoegd
2
3
echo '<form name="naam" action="pagina.php?pagina='.$pagina.'" method="post">';
?>
Ook hier geldt hetzelfde als bij de links:
pagina.php is de naam van je pagina. ?pagina is voor de $_GET functie, en met $pagina wordt de juiste waarde meegegeven.
Totaalscript
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// toegestane pagina's in een array zetten
$toegestaan=array("pagina1","pagina2","pagina3","pagina4","pagina5","pagina6");
// 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");
}
else{
// wanneer die niet toegestaan is standaard pagina includen.
include("home.php");
}
?>
Afsluiting
Zoals je ziet is dit maar een paar regels code voor 6 pagina's die kunnen worden geïnclude. Je kan die array zo groot maken als je zelf wilt.
Als je met de SWITCH gaat werken, ben je 3 regels per pagina kwijt, en als je een pagina toevoegd komen er weer 3 regels bij. In deze code voeg je een nieuw item toe aan de array, en het werkt.
nb. Voor hetzelfde aantal pagina's als in het voorbeeld, maar dan met de switch functie, moet je dus 18 regels programmeren voor de mogelijkheden, plus 3 voor de standaardwaarde, en 1 om de case functie te starten. Dit script telt (zonder commentaar) 7 regels