Svend har jo næsten nailen den her. Ifølge:
http://dk.php.net/manual/en/reserved.variables.request.php så ses det at $_REQUEST indeholder (per. standard, dette kan ændres i PHP konfigurationen):
$_GET
$_POST
$_COOKIE
Dvs. "tekst" kan komme fra querystringen (den del af URL'en efter "?"), fra et form post (dvs. POST data i et HTTP POST request) eller fra en cookie (en HTTP Header i requestet).
Hvad der dog ikke bliver nævnt nogle steder så vidt jeg kan se er den uanede mængder af sikkerhedshuller denne kode indebærer. Idet "tekst" kan være... hvad som helst - så er der intet her som stopper ondsindede personligheder fra at inkludere system filer som så kan printes ud og ses direkte på siden.
En bedre mulighed ville være at lave en whitelist over hvad der må inkluderes. F.eks. alla:
$tekst = $_REQUEST['tekst'];
$fil = 'opbygning.html';
switch($tekst){
case "menu":
$fil = 'menu.html';
break;
case "andet":
$fil = 'andet.html';
break;
case "...";
$fil = '...';
break;
}
include "includes/$fil";
Denne kode vil nu inkludere "includes/menu.html" hvis $tekst er "menu", "includes/andet.html" hvis $tekst er "andet", osv. Hvis $tekst ikke indeholder noget, eller indeholder noget ugyldigt, så vil "includes/opbygning.html" blive inkluderet.
Det er generelt en god ide at forvente at dine brugere er nogle ondsindede personligheder som altid forsøger at få dit site til at crashe (eller at finde et sikkerhedshul) og at gardere sig selv mod dette, via principper som disse.