PHP header() functie
Definitie en gebruik
De header() functie stuurt de oorspronkelijke HTTP header naar de client.
Het is belangrijk te beseffen dat de header() functie moet worden aangeroepen voordat er enige actuele output wordt verzonden (in PHP 4 en hoger kunt u outputcaching gebruiken om dit probleem op te lossen):
<html> <?php // Fout in het resultaat // Er is al output beschikbaar voordat header() wordt aangeroepen header('Location: http://www.example.com/'); ?>
Syntax
header(string,replace,http_response_code)
Parameters | Beschrijving |
---|---|
string | Verplicht. Bepaalt de te verzenden header string. |
replace |
Optioneel. Geeft aan of de header de eerdere header vervangt of een tweede header toevoegt. Standaard is true (vervangt). false (toestaat meerdere headers van dezelfde type). |
http_response_code | Optioneel. Forceer de HTTP-reactiecode op de opgegeven waarde. (Beschikbaar voor PHP 4 en hoger) |
Tips en opmerkingen
Opmerking:Vanaf PHP 4.4 af aan voorkomt deze functie het verzenden van meerdere headers in één keer. Dit is een beschermingsmaatregel tegen header-injectie-aanvallen.
Voorbeeld
Voorbeeld 1
<?php // Datum in het verleden header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Cache-Control: no-cache"); header("Pragma: no-cache"); ?> <html> <body> ... ...
Opmerking:Gebruikers kunnen enkele opties instellen om de standaard cache-instellingen van de browser te wijzigen. Door de bovenstaande headers te verzenden, kunt u deze instellingen overschrijven en dwingen dat de browser geen cache gebruikt!
Voorbeeld 2
Geef de gebruiker een melding om een gegenereerd PDF-bestand op te slaan (de Content-Disposition header wordt gebruikt om een aanbevolen bestandsnaam te bieden en de browser te dwingen een opslaan-dialoogvenster te tonen):
<?php header("Content-type:application/pdf"); // Het bestand zal worden genoemd downloaded.pdf header("Content-Disposition:attachment;filename='downloaded.pdf'"); // PDF bron in original.pdf readfile("original.pdf"); ?> <html> <body> ... ...
Opmerking:Microsoft IE 5.5 bevat een bug die deze mechanismen blokkeert. Door op te waarderen naar Service Pack 2 of een hogere versie, kan deze bug worden opgelost.