Ieder keer als ik een site maak doe ik da in html (iframe) dan include ik telkens mijn script bv: heb nieuwsscript include ik die file in me index. Maar ik wil nu een stapje verder, ik zie meestal op site (zoals deze) ?p="pagina" of ?pagina="pagina" . En ik vind nergens helemaal uitgelegt hoe je dit doet. Weet iemand waar het staat ofzo?
Avlavast al bedankt
28 antwoorden
Gesponsorde links
timo - 23/01/2006 17:59 (laatste wijziging 23/01/2006 18:00)
<body>
<table>
<tr>
<td>
<a href="?pagina=home">home</a><br />
<a href="?pagina=forum">forum</a><br />
<a href="?pagina=gb">guestbook</a><br />
</td>
<td>
<?php
switch($_GET['pagina']){
case "home"://is het 'home'? dan include home.php
include($_GET['pagina'].'.php');
break;//sluit de switch constructie af als dit de match is (zo ook bij de volgende)
case "forum": //is het 'forum'?dan include forum.php
include($_GET['pagina'].'.php');
break;
case "gb"://is het 'gb'? dan include gb.php
include($_GET['pagina'].'.php');
break;
default://geen matches met de vorige dus errorpage (of welke je ook maar wil laten zien)
include("error_page.php");
}
?>
</td>
</tr>
</table>
</body>
<body>
<table>
<tr>
<td>
<a href="?pagina=home">home</a><br />
<a href="?pagina=forum">forum</a><br />
<a href="?pagina=gb">guestbook</a><br />
</td>
<td>
<?php
switch($_GET['pagina']){
case"home"://is het 'home'? dan include home.php
include($_GET['pagina'].'.php');
break;//sluit de switch constructie af als dit de match is (zo ook bij de volgende)
case"forum"://is het 'forum'?dan include forum.php
include($_GET['pagina'].'.php');
break;
case"gb"://is het 'gb'? dan include gb.php
include($_GET['pagina'].'.php');
break;
default://geen matches met de vorige dus errorpage (of welke je ook maar wil laten zien)
Wanneer je dan naar index.php?pagina=nieuws gaat, geeft hij nieuws.php weer[of include hij die]. /Index.php?pagina=nieuws is helemaal hetzelfde als /?pagina=nieuws.
Het is het beste dat je nog eerst controleert op $_GET['pagina'] wel bestaat.
@Buttonman: hier en daar op het einde een break; vergeten.
@webstab: had idd één break; vergeten (vluchtig getypt:p), maar default heeft niet zonodig een break; nodig! default probeert men toch als laaste te matchen. (als default wel te verstaan helemaal vanonder de constructie staat)
@button, dit dan gwoon in me index? maar hoe link ik dat dan aan men buttons enzo?
@webstab, zoiets bedoelde ik.
Maar hoe gaat het dan ijn zijn werk, ik zet dat in de index, hoe lin ik de buttons er dan aan? gwn via hyperlink en dan bv members.php ? En hoe zorg ik ervoor da die pages dan op het juiste gedeelte verschijnen?
-op de plaats waar het php-scriptje staat, zal ook de pagina terechtkomen.
-en je linkt er zo naar (we stellen dat index.php de pagina is waar het php-script in staat) bv. <a href="index.php?pagina=forum">forum</a>
als hierop wordt geklikt zal de pagina met het forum verschijnen.
zo ook voor bv. home, gb, enzo veel pagina dat je maar wil!
meer info over super-globals(GET enz.): php.net
of tuts hier op sima
<?PHP
// we gaan nu het bestand includen met daarin alle toegestane
// paginas
include "paginas.php";
// kijken of ?pagina= geset is
if(isset($_GET['pagina']) && $_GET['pagina'] != "begin")
{
// ja
// nu gaan we kijken of de pagina ook voorkomt in onze
// array van toegestane pagina's
if(In_Array($_GET['pagina'], $aPagina))
{
// ja
// de pagina is toegestaan om bekeken te worden
// je zou eventueel ook nog kunnen kijken of de pagina
// bestaat, maar dat lijkt me overbodig
$sPagina = $_GET['pagina'];
} else
{
// de error pagina voor als de pagina niet toegestaan
// is om te bekijken
$sPagina = "errors/404";
}
} else
{
// standaard pgina voor als ?pagina= niet geset is
$sPagina = "nieuws/index";
}
?>
<?PHP
// we gaan nu het bestand includen met daarin alle toegestane
<?
// gebruik het script van rensjuh
// en dan gewoon je html, maar je links veranderen
?>
<a href="index.php?pagina=forum">Forum / Forumprentje</a>
<?
// enzovoort
// gewoon telkens in die ?pagina=forum de naam forum
// vervangen door de naam van je pagina
?>
<?
// gebruik het script van rensjuh
// en dan gewoon je html, maar je links veranderen
<?php
if (isset($_GET['pagina']))
{
if($_GET['pagina']=='home')
{
include('home.php');
}
elseif($_GET['pagina']=='nieuws')
{
include('nieuws.php');
// en steeds ga je met je code verder dus bv
// }
// elseif($_GET['pagina']=='info')
// {
// elseif($_GET['pagina']=='info')
} else { include("home.php"); }
?>
Als het goed is moet het werken.
Maar ik weet wel zeker dat dat geen van Rensjuh toch iets veiliger is:D Maar als je begint lijkt me dit wat makkelijker:D
dus gewoon een paginascript in de index dan daaronder de <a href="blablabla met alle pagina's, maar hoe zet ik dan dat men pagina op de juiste "plaats" verschijn?
Wat Rensjuh over het script van ece zegt is waar. Ook is het niet slim dat de index.php?pagina=index word toegelaten, want dan krijg je in feite een onophoudende loop, dus