PHP Tutorial:header.php und footer.phprichtig einsetzen
Ein leicht verständliches, ausführliches Tutorial für klassische PHP-Webseiten,
bei denen wiederkehrende Bereiche wie Kopf, Navigation, Seitenleisten und Fußbereich
sauber in eigene Dateien ausgelagert werden.
Bei einer PHP-Webseite gibt es meistens Bereiche, die auf vielen Seiten gleich bleiben:
Logo, Navigation, CSS-Einbindung, Seitenlayout, Fußbereich, Copyright, JavaScript-Dateien
und manchmal auch linke oder rechte Spalten. Statt diesen HTML-Code in jeder einzelnen
Datei zu wiederholen, lagerst du ihn in header.php und footer.php aus.
Die eigentliche Seite, zum Beispiel index.php, schreibt dann nur noch den Inhalt,
der wirklich zu dieser Seite gehört. Oben wird der Header eingebunden, unten der Footer.
Bild 1: Die Webseite entsteht wie ein Sandwich. Der Header kommt oben, der Seiteninhalt in die Mitte, der Footer unten.
Merksatz:header.php startet das wiederverwendbare Layout,
die Inhaltsseite füllt die Mitte, und footer.php beendet das Layout sauber.
Der Begriff „Header“ bedeutet nicht immer nur der sichtbare Kopfbereich der Webseite.
In vielen PHP-Projekten ist header.php eher der obere Teil der kompletten HTML-Struktur.
Dieser obere Teil kann auch bereits Wrapper, Container, Navigation oder Seitenleisten öffnen.
Bild 3: Header und Footer müssen zusammenpassen. Was oben geöffnet wird, muss unten wieder geschlossen werden.
Häufiger Fehler: In header.php werden mehrere <div>-Container geöffnet,
aber in footer.php wird einer vergessen. Dann verschiebt sich das Layout oder der HTML-Code ist ungültig.
Es gibt nicht nur eine richtige Art, header.php und footer.php zu verwenden.
Entscheidend ist, dass deine Struktur logisch bleibt und die geöffneten HTML-Tags sauber geschlossen werden.
Variante A: Nur oben und unten
Diese Variante ist ideal für einfache Webseiten ohne Seitenleiste.
<?php require_once __DIR__ . '/header.php'; ?>
<h2>Meine Seite</h2>
<p>Hier steht der Inhalt.</p>
<?php require_once __DIR__ . '/footer.php'; ?>
Variante B: Header öffnet auch eine linke Seitenleiste
Bei Adminbereichen oder Dashboards wird oft links eine Navigation angezeigt.
Dann kann header.php nicht nur oben etwas ausgeben, sondern auch den linken Bereich öffnen.
Bild 4: Der Header kann oben und links liefern. Der eigentliche Inhalt steht dann rechts daneben.
header.php mit linker Seitenleiste
Bei größeren Projekten ist es oft übersichtlicher, nicht alles in header.php
zu packen. Dann kann der Header den Kopfbereich ausgeben, die Sidebar liegt in
sidebar.php, und der Footer schließt wieder alles.
<?php require_once __DIR__ . '/inc/header.php'; ?>
<?php require_once __DIR__ . '/inc/sidebar.php'; ?>
<h2>Dashboard</h2>
<p>Hier steht der Inhalt des Dashboards.</p>
<?php require_once __DIR__ . '/inc/footer.php'; ?>
Variante D: Rechte Spalte zusätzlich
Eine Webseite kann auch links Navigation, in der Mitte Inhalt und rechts zusätzliche Informationen anzeigen.
Dann öffnet der Header häufig den kompletten Rahmen, während die Inhaltsseite nur den Hauptinhalt liefert.
<body>
<header>...</header>
<div class="layout-three-columns">
<aside class="left">Navigation</aside>
<main class="content">
<!-- Hier beginnt der Inhalt der jeweiligen Seite -->
<!-- Hier endet der Inhalt der jeweiligen Seite -->
</main>
<aside class="right">Zusatzinfos</aside>
</div>
<footer>...</footer>
</body>
Beim Einbinden solltest du dich nicht auf relative Browserpfade verlassen.
Verwende für PHP-Includes am besten __DIR__. Dadurch wird der Pfad vom aktuellen
Dateisystem-Ort der PHP-Datei aus berechnet.
Nicht ideal:require_once 'inc/header.php';
Das kann funktionieren, wird aber bei verschachtelten Ordnern schneller fehleranfällig.
Besser:require_once __DIR__ . '/inc/header.php';
So ist klar, von welchem Ordner aus die Datei geladen wird.
Befehl
Verhalten
Typischer Einsatz
include
Gibt eine Warnung aus, wenn die Datei fehlt. Das Script läuft weiter.
Optionale Bausteine.
require
Bricht das Script ab, wenn die Datei fehlt.
Wichtige Layout- oder Config-Dateien.
include_once
Bindet die Datei höchstens einmal ein.
Optionale Dateien, die nicht doppelt geladen werden sollen.
require_once
Bindet die Datei höchstens einmal ein und bricht bei Fehler ab.
Header, Footer, Config, Funktionen.
Für header.php, footer.php, Konfigurationen und Funktionsdateien ist
require_once meistens die beste Wahl.
#8. Seitentitel, aktive Navigation und Meta-Daten übergeben
Oft soll jede Seite einen eigenen Titel haben. Dafür setzt du vor dem Header Variablen.
Der Header liest diese Variablen und verwendet sie im HTML-Kopf oder in der Navigation.
Eine header.php ist normalerweise kein vollständiger Seitenaufruf,
sondern nur ein Baustein. Du kannst verhindern, dass jemand sie direkt im Browser aufruft.
Das ist besonders sinnvoll bei Dateien wie config.php, functions.php,
header.php oder footer.php.
#10. Sessions, Cookies und Weiterleitungen: Reihenfolge beachten
Alles, was HTTP-Header verändert, muss vor der ersten sichtbaren Ausgabe passieren.
Dazu gehören zum Beispiel session_start(), setcookie() und header('Location: ...').
Wichtig: Wenn header.php bereits HTML ausgibt, ist es für Weiterleitungen
oder Sessions oft zu spät. Starte Sessions und prüfe Logins deshalb vor der HTML-Ausgabe.
header.php und footer.php sind einfache, aber sehr wichtige Werkzeuge
in klassischen PHP-Projekten. Sie sparen Wiederholung, machen deine Dateien übersichtlicher
und sorgen dafür, dass dein Layout auf allen Seiten einheitlich bleibt.
Die wichtigste Denkweise ist: Der Header öffnet den Rahmen, die Inhaltsseite füllt ihn,
und der Footer schließt ihn wieder. Ob dieser Rahmen nur oben und unten liegt oder zusätzlich
links, rechts oder in mehreren Containern arbeitet, hängt vom jeweiligen Projekt ab.
Hinweis: Diese Website verwendet ausschließlich technisch notwendige Cookies (z. B. für die Sitzungsverwaltung).
Es werden keine Tracking- oder Analyse-Cookies eingesetzt.
Weitere Informationen finden Sie in der Datenschutzerklärung.