ik ben bezig om een pagina te maken met includes, dus een shtml pagina.
Nu wil ik een bestand maken die je vervolgens kunt gebruiken om de andere pagina's ook te kunnen bekijken.
zo zul je dus een index bestand krijgen die dan de vervolgpagina's ook inlaad.
Bijvoorbeeld downloads of mededelingen die bijvoorbeeld in een tekstbestand elders op de server staan.
Het includen van een bestand lukt me wel maar kan niet een pagina (die de lay-out van de pagina bevat) meerdere, verschillende inladen.
Welke codes moet ik gebruiken om dit wel te laten slagen. Zodat ik niet elke keer de index bestand hoef te veranderen.
<?php
//Kijkt naar wat je bij "?show=" hebt ingevuld
$page = $_GET[show];
//De extensie van elke pagina die moet worden geinclude (veranderbaar) elke pagina die je wilt includen moet wel dezelfde extensie hebben
$extensie = ".php"
LETOP Dit script moet wel in een php pagina staan en op de plaats waar je de pagina wilt hebben geinclude. Op de pagina waar dit script staat vul je dus in: ?show=demos
@Arjan: zo'n script is NIET veilig. Als ik jouw script bezoek via de volgende link, gaat het snel fout. Gebruik ik bijvoorbeeld index.php?show=http://www.eenfoutesite.nl/foutepagina en ik kan zo iedere pagina laten includen die ik wil.
Onderstaand script is veiliger:
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
// $dir: locatie van de te includen paginas.
// $ext: extensie van de te includen paginas.
// $allowed: array met namen van paginas die geinclude mogen worden.
$dir = 'inc/';
$ext = '.php';
$allowed = array('voorbeeld1', 'voorbeeld2', 'voorbeeld3');
// Controleer of er een pagina opgegeven is.
if(isset($_GET['page']))
{
$page = strtolower($_GET['page']);
// Controleer of pagina wel geinclude mag worden.
if(in_array($page, $allowed))
{
// Controleer of de pagina daadwerkelijk bestaat.
if(file_exists($dir.$page.$ext))
{
include($dir.$page.$ext);
}
else
{
echo 'Deze pagina bestaat niet.';
}
}
else
{
echo 'Dit is geen juiste pagina.';
}
}
else
{
// Geen pagina opgegeven? Include dan de default.
include('home.php');
}
?>