Syphon zei:
<a href="?menu=1">1</a>
<a href="?menu=2">2</a>
......
<?php
switch(strtolower($_GET['menu'])) {
case "1": $page="1.php";break;
case "2": $page="2.php";break;
case "3": $page="3.php";break;
case "4": $page="4php";break;
default: $page="nieuws.php";break; // default is voor als "pagina" niet gespecifieerd is!
} // nu we weten welke pagina er opgevraagd wordt, moeten we alleen deze php file nog includen en weergeven
include($page);
?>
is veel beter
beter?
n/o, ma dees methode suckt imho .
1) Zodra je met een site werkt waar er meer dan 20 mogelijkheden zijn is dit al zo onoverzichtelijk als iets!.
2) Je controleert niet of je $_GET geset is!.
3) Je hebt geen default in je switch.
4) Je code is imho gewoon lelijk
als je in termen van beter wilt spreken, denk ik dat toch al een iets betere + duidelijkere oplossingen is:
PHP:
$page = isset($_GET['page']) ? $_GET['page'] : '';
switch($page)
{
case "aap":
require("aap.php");
break;
case "geenaap":
require("geenaap.php");
break;
default:
require("stdpage.php");
}
of, als je dan toch met cijfertjes in de url wilt werken:
PHP:
define(AAP,0);
define(GEENAAP,1);
$page = isset($_GET['page']) ? $_GET['page'] : '';
switch($page)
{
case AAP:
require("aap.php");
break;
case GEENAAP:
require("geenaap.php");
break;
default:
require("stdpage.php");
}
link doe je dan bv. zo:
PHP:
echo '<a href="index.php?page='.AAP.'">Aap page</a>';
edit: en ipv switch kan je ook met arrays werken:
PHP:
$pages = array("aap"=>"aap.php","geenaap"=>"geenaap.php");
$page = isset($_GET['page']) ? $_GET['page'] : '';
if(isset($pages[$page]))
{
require($pages[$page]);
}
else
{
require("stdpage.php");
}
cijferkesversie:
PHP:
define(AAP,0);
define(GEENAAP,1);
$pages = array(AAP=>"aap.php",GEENAAP=>"geenaap.php");
$page = isset($_GET['page']) ? $_GET['page'] : '';
if(isset($pages[$page]))
{
require($pages[$page]);
}
else
{
require("stdpage.php");
}