Hoi,

Ik wil graag een website maken met php en wil de pagina's zo maken dat de link zo moet worden:
index.php?=pagina1

maar ik weet niet precies hoe dat moet.

Kan iemand me hier bij helpen??
Wat jij bedoelt zijn zogenaamde GET variabelen. Een link ziet er dan bijvoorbeeld zo uit:

www.jouwsite.nl/index.php?page=pagina1

Nu kun je met behulp van php de GET variabele 'page' ophalen en aan de hand daarvan bepalen welke pagina geinclude moet worden. Een voorbeeld van hoe je dat zou kunnen doen:

<?php
$dir = 'inc/'; // Map waarin je alle pagina's hebt staan.
$ext = '.php'; // Extensie van de pagina's die je wilt includen
$paginas = array('pagina1', 'pagina2', 'pagina3', 'etc...');

// Kijk of er een pagina meegegeven is.
if(isset($_GET['page']))
{
if(in_array($_GET['page'], $paginas))
{
// Geldige pagina?
include($dir.$_GET['page'].$ext);
}
else
{
// Geen geldigde pagina?
header('Location: index.php');
}
}
else
{
// Geen pagina opgegeven? Include dan het bestand
// voor de index, bijvoorbeeld 'home.php';
include($dir.'home.php');
}
?>

Er zijn ook andere manieren, bijvoorbeeld door met een switch statement te bepalen welke pagina geinclude moet worden. Voorbeeld daarvan zijn wel op het forum te vinden.

[edit]} vergeten[/edit]
maar als je dan meerdere pagina's hebt, moetje dan een nieuwe file maken ofzo? en moet je met MqSQL werken?
hoe werkt dat?

en ik krijg ook dit:
Parse error: parse error in /data/members/free/tripod/nl/l/o/g/loginpagina/htdocs/test/index.php on line 19
Nope, alle pagina's worden nu geinclude in index.php. Je hoeft alleen maar de naam van je pagina toe te voegen aan de array pagina's.

Dus als je klikt op de link:
www.jouwsite.nl/index.php?page=pagina1

wordt in bovenstaand geval 'pagina1.php' geinclude in index.php.
maar ik krijg nog altijd dit :S:S:S

Parse error: parse error in /data/members/free/tripod/nl/l/o/g/loginpagina/htdocs/test/index.php on line 19 en op lijn 19 stat alleen maar else
Er stond een foutje in het voorbeeld dat ik gaf, inmiddels aangepast.

en op lijn 19 stat alleen maar else

je moet de regel ervoor altijd eerst kijken, 18 dus.. vaak staat daar de fout.
in dit geval stond op lijn 18 geen }
<?php
$paginas = array('pagina1', 'pagina2', 'pagina3', 'etc...');
//stukje overgeslagen
if(in_array($_GET['page'], $paginas)) //kijken als in de bovenstaande array misschien "dezelfde" pagina zit als in de URL
{
// Geldige pagina?
include($dir.$_GET['page'].$ext); //als dat zo is dan include je de pagina, die in de URL staat met $_GET['page']...
}
?>

snap je dat? ik snap niet waarom je dat nu vraagt.. in elk geval zet je een pagina die je in de url wilt in die array. dan met die ifjes kijken wat er in de url staat en kijken als dat in die array staat.. dan includen.

[edit]
*nog* meer uitleg
<?php
/*
Als de pagina aangeroepen wordt door ?p=pagina dan wordt er eerst gekeken of pagina.html bestaat

Zo ja, include dat bestand in dit bestand
Zo nee, jammer dan voor de bezoeker, bestand bestaat niet
*/

if(isset($_GET['p'])) //als de pagina aangeroepen wordt met ?p=
{
if(file_exists($_GET['p'].'.html')) //dan gaan we even kijken of het deel wat achter ?p= staat een geldige pagina is
{
include 'paginas/'.$_GET['p'].'.html'; //zo ja, dan kunnen we het bestandje dus includen
}
else //bestaat het bestand nog niet
{
echo 'deze pagina bestaat (nog) niet'; //laat de bezoeker dat even weten
}
}
?>

Reageren