Styre hva som vises av innhold ved hjelp av parametre fra query-strengen:
http://www.foo.invalid/index.php?side=kontakt.html
<?php
include 'header.php';
include $_GET['side'];
include 'footer.php';
?>
Dersom vi istedet bruker følgende URL (krever allow_url_fopen config-direktiv):
http://www.foo.invalid/index.php?side=http://www.google.no/index
http://www.foo.invalid/index.php?side=../../mappe/bar
Det er en vanlig feil at man bruker include, når man egentlig bare skal ha inn
statisk tekst.
Dersom man ønsker å sette sammen flere elementer av statisk HTML, så kan man heller
bruke file_get_contents(), readfile()
<?php
include 'header.php';
readfile($_GET['side']);
include 'footer.php';
?>
Istedet kan man f.eks bare inludere filer man eksplisitt har inkludert.
<?php
include 'header.php';
$foo = array('kontakt' => 'tmpl/kontakt.html',
'omoss' => 'tmpl/omoss.html',
'osvosv' => 'tmpl/osvosv.html');
$side = 'tmpl/index.html';
if (isset($foo[$_GET['side']])) {
$side = $foo[$_GET['side']];
}
include 'footer.php';
?>
Eller
<?php
$foo = array('kontakt' => 'tmpl/kontakt.html',
'omoss' => 'tmpl/omoss.html',
'osvosv' => 'tmpl/osvosv.html');
include 'header.php';
$side = 'tmpl/index.html';
if (isset($foo[$_GET['side']])) {
$side = $foo[$_GET['side']];
}
readfile($side);
include 'footer.php';
?>
include bør bare brukes dersom man faktisk ønsker å kjøre PHP-kode i den inkluderte filen.
Bruk istedet file_get_contents(), readfile() el.