Anfänger - Freitag, Februar 22, 2008 16:01

index.php?goto=xxx (include) mit PHP

Oft sieht man auf Internetseiten Adressen nach dem Schema index.php?goto=xxx.

Was bedeutet das, wie funktioniert es und was hat es für Vorteile?

Um zu zeigen was das Bedeutet, hier ein einfaches Beispiel:

Stellen wir uns vor, wir haben eine statische Seite mit einer Navigation links und einem Inhalt-Teil rechts.

Die Tabelle sieht dann in etwas so aus.(stark veinfacht)

<table width=”100%” border=”1″>
<tr>
<td width=”20%”>
Menü 1<br>
Menü 2<br>
Menü 3<br>
….
</td>

<td>HIER STEHT DER INHALT</td>
</tr>
</table>

Wenn man nun auf jeder Unterseite eine Navigation haben möchte, muss man also überall diese Tabelle einfügen.
Wenn sich jetzt aber mal etwas an der Navigation ändern sollte, müsste man auf jeder Unterseite den entsprechenden Punkt ändern.

Bei größeren Projekten ist das eine Arbeit die kaum zu bewältigen sein dürfte.

Daher kann man (neben vielen anderen möglichen Lösungen) in PHP eine dynamische Seite erstellen, in der die Navigation nur einmal vorhanden ist, und der Inhalt jeweils in die Seite “hereingeladen” wird.

Die index.php einer solchen Webseite könnte also so ausehen.

<table width=”100%” border=”1″> 
<tr> 
<td width=”20%”> 
Menü 1<br> 
Menü 2<br> 
Menü 3<br> 
…. 
</td> 

<td> 

<?php
 

$include=$_GET[goto] . “.php”
if(
file_exists($include)==1){ 
include_once 
$include  

else 
{include (
‘home.php’); 

 
?> 
</td> 
</tr> 
</table>

Erklärung

In der index.php steckt nun das Menü und der (leere) “Bereich” für den Inhalt. Wenn jetzt die Variable $goto per URL übergeben wird (z.b. index.php?goto=scriptarchiv), und die Datei scriptarchiv.php auf dem Server vorhanden ist, wird diese included (eingefügt).

Sollte diese Datei nicht auf dem Server vorhanden sein, wird enfach die home.php eingefügt und der Benutzer landet auf der Startseite.

Das ganze hat den Vorteil, dass man das Menü bzw. das Layout bei Änderungen nur 1x zu ändern braucht.



2 Kommentare
RSS Feed der Kommentare | Kommentieren | Trackback

DeeJay
Feb 26, 2008 16:01

ok im einzelnen funktioniert dies aber wie mach ich das in verbindung mit dem template tut von hier?

hab die ganzen sondersachen wie $title und sowas in eine var.php gepackt damits zum schluß übersichtlicher bleibt …

bin halt noch “blutiger” anfänger und php für dummies etc helfen mir auch grad nicht wirklich weiter

ich
Apr 8, 2008 14:03

kapiere ich nich so richtig

Kommentieren

wichtige Artikel