|
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.7">
headerBeschreibungint header ( string string [, bool replace [, int http_reponse_code]])header() wird zum Senden von HTTP Anfangsinformationen (Headern) benutzt. Weitere Informationen über HTTP Header finden Sie unter HTTP/1.1 specification. Der optionale Parameter replace gibt an, ob der Header einen vorhergehenden Header ersetzten soll, oder ob ein zweiter Header des selben Typs hinzugefügt werden soll. Standardmäßig wird ersetzt. Sie können jedoch als das zweite Argument FALSE übergeben, und so mehrere Header desselben Typs erzwingen. Zum Beispiel: Der zweite optionale Parameter http_response_code spezifiziert den HTTP Response Code. (Dieser Parameter ist in PHP 4.3.0 und höher verfügbar.) Es gibt zwei Spezialfälle von Header-Aufrufen. Der erste ist ein Header, der mit "HTTP/" beginnt (ob groß- oder Kleinschreibung ist nicht relevant) und zum Herausfinden des zu sendenden HTTP Statuscodes verwendet wird. Wenn Sie zum Beispiel Apache konfiguriert haben, um ein PHP Skript zum Bearbeiten von Anforderungen fehlender Dateien (mittels der ErrorDocument Direktive) zu verwenden, möchten Sie bestimmt sicherstellen, dass Ihr Skript den passenden Statuscode generiert.
Der zweite Spezialfall ist der "Location:" Header. Es wird nicht nur der Header an den Browser geschickt, sondern auch ein REDIRECT (302) Statuscode, wenn nicht bereits ein 3xx Statuscode gesendet wurde.
PHP-Skripte erzeugen oft dynamische Inhalte, die weder vom Browser noch von irgendeinem Proxy zwischen Web-Server und Client-Browser gepuffert ("gecached") werden sollen bzw. dürfen. Bei vielen Proxies und Browsern kann das Cachen wie folgt unterbunden werden:
Beachten Sie, dass header() aufgerufen werden muss, bevor eine Ausgabe gesendet wurde, egal ob normale HTML Tags, leere Zeilen in einer Datei oder von PHP. Ein weit verbreiteter Fehler ist mittels include(), require(), oder anderen Dateizugriffsmethoden Code zu lesen, und so unbewusst Leerzeichen oder Leerzeilen auszugeben, bevor header() aufgerufen wird. Das gleiche Problem besteht auch bei Verwendung einer einzigen PHP/HTML Datei.
Wollen Sie den Benutzer auffordern, die von Ihnen gesendeten Daten wie z.B. eine generierte PDF Datei zu speichern, können Sie den Header Content-Disposition verwenden, um einen empfohlenen Dateinamen anzubieten und den Browser zu zwingen, den Dialog zum Speichern anzuzeigen.
Siehe auch headers_sent(), setcookie() und den Teil HTTP Authentifizierung.
|