Header

Aus php bar

(Weitergeleitet von Header())
Wechseln zu: Navigation, Suche

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

 if ( ! isset( $_SERVER['PHP_AUTH_USER'] ) )
 {
     // Zeige Login-Maske
     header( 'WWW-Authenticate: Basic realm="Geschlossener Bereich"' );
     header( 'HTTP/1.0 401 Unauthorized' );
     // Text der bei Abbruch angezeigt wird
     echo 'Bitte geben Sie Benutzername und Passwort ein um Zutritt zu erhalten';
 }
 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.

 $file = '/pfad/zu/einer/datei.zip';
 // Dateityp
 header( 'Content-type: application/octet-stream' );
 // Größe der Datei
 header( 'Content-Length: ' . filesize( $file ) );
 // Dateiname
 $dateiname = basename( $file );
 header( 'Content-Disposition: attachment; filename="' . $dateiname . '"' );
 // 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


Weblinks

Persönliche Werkzeuge