Hauptmenü

Untermenü

PHP/MySQL - Header - Erläuterung

1. Die Abschnitte

2. Ein Hinweis

Die folgenden Erläuterungen sind als Einstieg gedacht. Daher habe ich völlig willkürlich ein paar Beispiele zusammengestellt, denn ein kompletter Überblick über alle Möglichkeiten würde jeglichen Rahmen sprengen. Auch gibt es keine saubere Trennung nach der Art der Header. Hier geht es erst mal nur um das Grundsätzliche. Vielleicht schiebe ich ja irgendwann mal ein Tutorial für Fortgeschrittene nach.

3. Der Beispielcode

... kann wie gehabt rechts unter selbigem Punkt herunter geladen werden. Dabei gibt es für fast jeden der folgenden Abschnitte einen Ordner (fast) gleichen Namens. Folgende Ordner sollten vorhanden sein.

4. Das Grundprinzip

Obacht!

Vorab möchte ich darauf hinweisen, dass folgende Erklärungen nicht ganz den Tatsachen entsprechen. Ich mache das aber aus didaktischen Gründen, um euch den Einstieg und das grundlegende Verständnis zu erleichtern.

In (X)HTML gibt es das <meta http-equiv>-Tag, mit dem man bestimmte Informationen zur Verfügung stellt. Die richten sich zum Beispiel an Browser, Proxy-Server oder Suchmaschinen. So weist folgender Code den Browser an, nach 5 Sekunden auf www.example.org weiterzuleiten.


<meta http-equiv="refresh" content="5; URL=http://www.example.com">

Oder mit dem folgenden Code sagen wir den Proxy-Servern "Bitte, bitte, nicht zwischenspeichern". Auch wenn die sich nicht immer daran halten ;-).


<meta http-equiv="pragma" content="no-cache">

All diese Angaben werden in (X)HTML im <head>-Bereich einer jeden Seite definiert.

5. PHP-Header

... funktionieren ähnlich. Allerdings ist die Syntax ein wenig anders. Da arbeitet man nicht mit http-equiv, sondern mit der Funktion header. Obige Beispiele sehen in PHP dann so aus.


header ("Location: http://www.example.com");
header ("Pragma: no-cache");

6. Der feine Unterschied

Einfach gesagt, gibt es zwei Arten von Headern. Da hätten wir zum einen die "normalen" und dann die so genannten HTTP-Header. Der Unterschied ist einfach zu erklären. Von Ersteren kann man mehrere senden, von Letzteren nur einen(!). So führt zum Beispiel folgender Code dazu, dass die Weiterleitung mittels Location nicht ausgeführt wird, da bereits vorher ein HTTP-Header gesendet wurde.


header("HTTP/1.1 304 Not Modified"); 
header('Location: bla.php');

7. Übersicht

Wer des Englischen mächtig ist und über ein abstraktes Denkvermögen verfügt, der möge sich nach eigenem Gusto mal die HTML-Spezifikation des W3C zum Thema Header zu Gemüte führen.

weiter zum nächsten Abschnitt