Seiten einbinden
in PHP · Autor: Sebastian Fuchs
In PHP gibt es eine praktischen Funktion, mit der wir einfach Inhalte von anderen Seiten in eine andere einbinden können. Beispielsweise haben wir unser Seitendesign, und in den Bereich wo der Inhalt ist soll jetzt ein Gästebuch eingebunden werden. Natürlich gibt es iFrames, doch diese sind inzwischen einfach zu veraltet.Der Befehl zum Einbinden von Seiten in PHP lautet include() bzw. require(), wobei der Unterschied beider Funktionen nur in der Fehlerbehandlung besteht. Die Handhabung ist eigentlich ziemlich simpel, da wir innerhalb des PHP Bereiches als Funktionsparameter lediglich den Namen der einzubindenden Datei angeben müssen.
<html>
<head>
<title>Seiten einbinden</title>
</head>
<body>
<?php
include('datei.php');
?>
</body>
</html>
In meinem Beispiel wird die Datei "datei.php" in das aktuelle Dokument eingebunden.<head>
<title>Seiten einbinden</title>
</head>
<body>
<?php
include('datei.php');
?>
</body>
</html>
In die Datei könnten wir jetzt beispielsweise einen Text schreiben, der dann in dem <body>-Bereich erscheint. Unsere "datei.php" braucht deshalb keinen <html>, <head> oder <body>-Tag mehr.
Da wir bei dieser Variante aber noch für jedes include() eine neue Datei, die den jeweiligen Inhalt einbindet, anlegen müssten, gibt es noch eine dynamische Variante. Diese ist sehr empfehlenswert, wenn man auf seiner Seite zum Beispiel immer nur den Content-Bereich, also den jeweiligen Inhalt, neu laden möchte. Die Navigation, der Header usw. bleiben dann immer erhalten und müssen nicht immer wieder mit angegeben werden. Das spart viel Arbeit beim Verwalten der Seiten, da Änderungen an diesen Teilen direkt auf allen Seiten angewendet werden.
<html>
<head>
<title>dynamisch Includes</title>
</head>
<body>
<?php
if(isset($_GET['page'])
{
$page = $_GET['page'];
// Unterseite
if(file_exists($page.'.php'))
{
include($page.'.php');
}
// Fehler wenn Seite nicht existiert
else
{
echo 'Die gewünschte Seite konnte nicht gefunden werden!';
}
}
// Standardseite
else
{
include('startseite.php');
}
?>
</body>
</html>
Beim ersten if wird überprüft, ob eine einzubindende Seite übergeben wurde. Wenn keine Seite übergeben wurde, soll eine Standardseite eingebunden werden, wie z.B. die Startseite (siehe else-Teil).<head>
<title>dynamisch Includes</title>
</head>
<body>
<?php
if(isset($_GET['page'])
{
$page = $_GET['page'];
// Unterseite
if(file_exists($page.'.php'))
{
include($page.'.php');
}
// Fehler wenn Seite nicht existiert
else
{
echo 'Die gewünschte Seite konnte nicht gefunden werden!';
}
}
// Standardseite
else
{
include('startseite.php');
}
?>
</body>
</html>
Beim nächsten if wird die Anweisung festgelegt, die ausgeführt werden soll, wenn die angegebene Datei mit der Endung ".php" vorhanden ist. Existiert die Seite auf dem Server, wird sie eingebunden. Da hier die Endung ".php" angefügt wird, müssen wir bei unseren Links keine Endung mit angeben. Dazu aber gleich noch mehr.
Kommen wir jetzt zum nächsten else-Teil. Hier kann eine Fehlermeldung definiert werden, falls ein Link angeklickt wurde, die Datei aber nicht existiert. Auf diese Weise hat man eine individuelle Fehlermeldung, wenn eine nicht existierende Seite aufgerufen wird.
Schließlich kommen wir noch zu der Schreibweise der dazu passenden Links. Diese ist recht simpel:
<a href="index.php?page=datei">Link</a>
index.php ist die Indexseite, in der der PHP Code von eben steht. Falls die Datei anders heißt, müssen die Links entsprechend geändert werden.Danach folgt ein ?page=, denn in unserem Code haben wir die Variable $_GET['page'] verwendet. Wenn die Variable anders genannt wird, muss dies in den Links auch angepasst werden.
Anschließend kommt noch der Dateiname, nur ohne Endung (im Beispiel wäre das Originaldokument "datei.php"). Denn die Endung ".php" wird in unserem PHP Code automatisch angefügt. So wird der Link nicht zu lang und unübersichtlich.
Der Inhalt dieser Seite erscheint dann an der Stelle wo unser PHP Code im Dokument positioniert ist. Das sollte natürlich der Content-Bereich unserer Seite sein.
Einziger Nachteil bei dieser Variante ist, dass alle include-Dateien als ".php" abgespeichert werden müssen. Das ist aber nicht weiter schlimm, da auch reine HTML Dateien als PHP Dateien abgespeichert werden können.
· zurück zu "PHP Tutorials"






