PHP/MySQL - Header - Kleine Beispiele
1. Die Abschnitte
- Erläuterung
- "Cannot modify ..."
- Pufferung
- Kleine Beispiele
- Internet Media Type
- Dateien
- Downloads
- Charset
- HTTP-Header
2. Weiterleitung
Dies ist der wohl am meisten gebrauchte Header. Damit kann man auf eine beliebige Seite weiterleiten. Laut Spezifikation muss dabei ein absoluter Pfad angegeben werden, aber praktisch alle Browser akzeptieren auch einen relativen.
<?php
header ("Location: http://www.peterkropff.de");
?>
<?php
header ("Location: bla.htm");
?>
Im Gegensatz zu <meta http-equiv="refresh" content="5; URL=...">
bei HTML gibt es in diesem Fall keine Möglichkeit,
eine Zeitverzögerung einzubauen. Man könnte höchstens analog zu setTimeout
bei JavaScript mit sleep
arbeiten.
Dazu findet ihr bei den Beispielen im Ordner beispiele
die Datei sleep.php
. Und dann seht ihr auch sofort die
nachteiligen Auswirkungen.
3. Caching
Um ein proxy- und clientseitiges Zwischenspeichern zu verhindern, muss man schon ein paar Header auf die Reise schicken. Ein halbwegs sicherer Schritt dazu könnte so aussehen.
<?php
header ("Cache-Control: no-cache, must-revalidate");
header ("Expires: 0");
header ("Pragma: no-cache");
?>
4. Texttypen
Des Öfteren ist es wichtig, den Browser über die Art von Textinhalten zu informieren, denn das hat unter Umständen gewaltige Auswirkungen auf die Darstellung. Nehmen wir also mal an, wir haben diese Zeichenkette, die wir an den Browser senden wollen.
<?php
$bla = '<info>
<bla>bla</bla>
<blubb>blubb</blubb>
</info>';
?>
Und nun schaut euch mal die drei folgenden Beispiele an.
<?php
$bla = '...'; // s.o.
header('Content-Type: text/xml');
echo $bla;
?>
<?php
$bla = '...'; // s.o.
header('Content-Type: text/plain');
echo $bla;
?>
<?php
$bla = '...'; // s.o.
header('Content-Type: text/html');
echo $bla;
?>
Was glaubt ihr, wird da jeweils passieren? Nun, im Ordner beispiele
gibt es dafür eine Datei namens typen.php
.
Spielt mal ein wenig damit herum, dann werdet ihr die Unterschiede sofort erkennen. Zum grundsätzlichen Problem komme ich jetzt.
zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt