Nu har jeg altså siddet en hel del med scriptet kan ikke helt forstå hvordan det skulle kunne virke. Jeg har lavet en folder som heder sider og en fil der heder index.php første mand der forklarer det SÅ SELV JEG KAN FATTE DET for de 200 up.
Hvis du kigger på den kode jeg har givet dig, er hver eneste kodestump kommenteret! fileexists funktionens brug burde vist give sig selv, den chekker for om en given fil eksistere, alt du skal gøre er at rette lidt til i variablerne, hvis ikke du har php4.1 så skal du ændre $_GET["id"] til $id.
Mvh
Kaare
Okay, her er en forklaring linie for line:
... din start html kode, ned til hvor indeholdet skal være
<?php
$directory = "sider"; // Bibloteket hvor dine sider ligger, uden en sluttende "slash" (/)
$directory angiver dit bibliotek som dine sider ligger i.
I eksemplet skal dine filer ligge under bib. "sider".
Vil du ha' det til at ligge under f.eks. "mit_web/sider" så sætter $directory = med det.
$file = $directory . '/' . $_GET['id'] . '.php'; //Filen som skal inkluderes
Når du kalder denne php side så skal du angive "id" som parameter altså:
http://www.din_web_adr/denne_php_side.php?id=forsideI linien ovenfor vil din $_GET["id"] indeholde "forside".
$file vil nu indeholde en streng sammensat af $directory og dit parameter.
Hvis vi bruger sammen URL som ovenfor så vil $file indeholde følgende:
"sider/forside.php"
Hvis nu du ikke havde angivet nogen parameter (f.eks.
http://www.din_web_adr/denne_php_side.php) så vil $_GET["id"] indeholde en
tom streng og din $file vil se således ud:
"sider/.php"
$std_file = $directory . '/main.php';
Lidt lige som ovenfor med her sætter vi altid den samme php fil (main.php).
Det vil sige $std_file vil indeholde : "sider/main.php".
Hvis din "default" php side skal hedde noget andet end main.php så ændre i den ovenstående.
Lad os sige den skulle hedde "default.php" så ændre du det til:
$std_file = $directory . '/default.php';
if(fileexists($file)){
include_once($file);
Her checker vi på om filen som $file peger på eksistere.
Hvis den gør så inkluderes den i denne php siden.
Det vil sige at indholdet af php siden som $file peger vil blive udført lige som hvis du havde kaldt den direkte i din browser.
} else {
include_once($std_file);
}
Hvis filen ikke findes (hvis $_GET["id"] er tom eller den angiver et forkert filnavn) så bruges $std_file i stedet for. Altså så inkluderes "sider/main.php" i denne php fil.
?>
... din slut kode, fra slutningen af indholdet og ned.
Jeg håber dette giver dig en bedre forståelse af scriptet og hvordan det fungere.
PS. UP'ene vil jeg ikke ha' da de bør gå til Kaare da det var ham der kom med scriptet.
Michael.