Header
Aus php bar
Mit der header() Funktion kann man vom Server aus dem Client verschiedene Arten von HTTP-Header-Informationen senden, die in der RFC 2616 (Hypertext Transfer Protocol 1.1) festgelegt sind.
Die verschiedenen Header-Informationen kann man in verschiedene Rubriken einteilen. Header wie Content-Type geben Metainformationen über die Seite zurück (Entity), wohingegen WWW-Authenticate zum Beispiel den Benutzer auffordert Benutzername und Passwort einzugeben (Response).
Inhaltsverzeichnis |
Beispiele
Nachfolgend einige praktische Anwendungen der header() Funktion.
Umleitung
Entsprechend der RFC-2616 muss eine komplette URL - inklusive http:// - übergeben werden. Viele Browser kommen zwar auch mit relativen URLs klar, Standardkompatibilität ist aber jedenfalls besser.
1 // Umleitung auf http://www.phpbar.de/ 2 header( 'Location: http://www.phpbar.de/' );
siehe auch: Umleitung
Authentifizierung
1 if ( ! isset( $_SERVER['PHP_AUTH_USER'] ) ) 2 { 3 // Zeige Login-Maske 4 header( 'WWW-Authenticate: Basic realm="Geschlossener Bereich"' ); 5 header( 'HTTP/1.0 401 Unauthorized' ); 6 // Text der bei Abbruch angezeigt wird 7 echo 'Bitte geben Sie Benutzername und Passwort ein um Zutritt zu erhalten'; 8 } 9 else 10 { 11 // Gebe Benutzername und Passwort aus 12 echo 'Hallo ' . $_SERVER['PHP_AUTH_USER'] . ', Ihr Passwort lautet: ' . $_SERVER['PHP_AUTH_PW']; 13 }
siehe auch: HTTP-Authentifizierung
Download
Download einer Datei, die sich bereits auf dem Server befindet.
1 $file = '/pfad/zu/einer/datei.zip'; 2 // Dateityp 3 header( 'Content-type: application/octet-stream' ); 4 // Größe der Datei 5 header( 'Content-Length: ' . filesize( $file ) ); 6 // Dateiname 7 $dateiname = basename( $file ); 8 header( 'Content-Disposition: attachment; filename="' . $dateiname . '"' ); 9 // Ausgeben der Datei 10 readfile( $file );
Download einer Datei, die erst generiert und in einem string gespeichert wird
1 // Dateityp 2 header( 'Content-type: application/octet-stream' ); 3 // Größe der Datei 4 header( 'Content-Length: ' . strlen( $string ) ); 5 // Dateiname 6 header( 'Content-Disposition: attachment; filename="datei.txt"' ); 7 // Ausgeben der Datei 8 echo $string;
siehe auch: Download
Wichtiger Hinweis
Der Header muss vor jeglicher Ausgabe (auch kein Leerzeichen) an den Browser gesendet werden!
Handbucheintrag

