<Pełna referencyjny PHP HTTP
Definicja i Wykorzystanie
header() funkcja wysyła nagłówek HTTP surowca do klienta.
Ważne jest, aby zauważyć, że header() musi być wywołana przed jakimkolwiek rzeczywista moc jest przesyłana (W PHP 4 i później, można użyć buforowania wyjścia aby rozwiązać ten problem):
<html>
<?php
// This results in an error.
// The output above is before the header() call
header('Location: http://www.example.com/');
?>
Składnia
header(string,replace,http_response_code)
Parametr | Opis |
---|---|
string | Wymagany. Określa ciąg nagłówka wysłać |
replace | Opcjonalny. Wskazuje, czy nagłówek powinien zastąpić poprzedni lub dodać drugi nagłówek. Domyślną jest TRUE (will replace) . FAŁSZ (allows multiple headers of the same type) |
http_response_code | Opcjonalny. Wymusza kod odpowiedzi HTTP do określonej wartości (available in PHP 4.3 and higher) |
Porady i uwagi
Note: Począwszy od PHP 4.4 funkcja ta zapobiega więcej niż jeden nagłówek zostać wysłany na raz. Jest to ochrona przed atakami wstrzyknięcia nagłówka.
Przykład 1
Zapobiec buforowanie strony:
<?php
// Date in the past
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache");
header("Pragma: no-cache");
?>
<html>
<body>
...
...
Note: Nie ma możliwości, że użytkownicy mogą się zmienić domyślne ustawienia buforowanie przeglądarki. Wysyłając nagłówki powyżej, należy zastąpić któryś z tych ustawień i zmusić przeglądarkę do nie buforują!
Przykład 2
Pozwalają użytkownikowi monit o zapisanie wygenerowanego pliku PDF (Content-Dyspozycja header służy do zasilania zalecaną nazwę pliku i zmusić przeglądarkę, aby wyświetlić okno dialogowe zapisywania):
<?php
header("Content-type:application/pdf");
// It will be called downloaded.pdf
header("Content-Disposition:attachment;filename='downloaded.pdf'");
// The PDF source is in original.pdf
readfile("original.pdf");
?>
<html>
<body>
...
...
Note: Jest to błąd w programie Microsoft Internet Explorer 5.5, który uniemożliwia wykorzystanie tego mechanizmu. Błąd może być rozwiązana przez uaktualnienie do dodatku Service Pack 2 lub nowszym.
<Pełna referencyjny PHP HTTP