Przykłady użycia funkcji header() w PHP: Różnice pomiędzy wersjami
Przejdź do nawigacji
Przejdź do wyszukiwania
(Nie pokazano 15 wersji utworzonych przez 11 użytkowników) | |||
Linia 1: | Linia 1: | ||
Funkcja header() służąca wysyłaniu nagłówków serwera z poziomu PHP może być wykorzystywana do wielu celów. | Funkcja header() służąca wysyłaniu nagłówków serwera z poziomu PHP może być wykorzystywana do wielu celów. | ||
Większość osób korzysta z niej w celu przekierowania użytkownika z jednej strony na druga, jednak liczba zastosowań jest o wiele większa. | Większość osób korzysta z niej w celu przekierowania użytkownika z jednej strony na druga, jednak liczba zastosowań jest o wiele większa. | ||
== Wysłanie nagłówka 200 - strona wysłana poprawnie == | |||
<pre> | |||
header('HTTP/1.1 200 OK'); | header('HTTP/1.1 200 OK'); | ||
</pre> | |||
Zastosowanie | Zastosowanie | ||
W wypadku jeżeli praktycznie otrzymamy stronę 404 możemy łatwo oszukać użytkownika lub boty indeksujące wysyłając powyższy nagłówek oraz generując treść przyjazną dla człowieka zawierającą aktualne informacje. | |||
*W wypadku jeżeli praktycznie otrzymamy stronę 404 możemy łatwo oszukać użytkownika lub boty indeksujące wysyłając powyższy nagłówek oraz generując treść przyjazną dla człowieka zawierającą aktualne informacje. | |||
Wysłanie nagłówka 404 - brak żądanego pliku | |||
== Wysłanie nagłówka 404 - brak żądanego pliku == | |||
<pre> | |||
header('HTTP/1.1 404 Not Found'); | header('HTTP/1.1 404 Not Found'); | ||
</pre> | |||
Zastosowanie | Zastosowanie | ||
Może służyć w celu oszukania użytkownika który próbuje uzyskać dostęp do niedozwolonych zasobów. | |||
*Może służyć w celu oszukania użytkownika który próbuje uzyskać dostęp do niedozwolonych zasobów. | |||
Wszak 404 brzmi mniej kusząco niż dostęp zabroniony :) | Wszak 404 brzmi mniej kusząco niż dostęp zabroniony :) | ||
Wysłanie nagłówka 404 - brak dostępu | |||
== Wysłanie nagłówka 404 - brak dostępu == | |||
<pre> | |||
header('HTTP/1.1 403 Forbidden'); | header('HTTP/1.1 403 Forbidden'); | ||
</pre> | |||
Zastosowanie | |||
*Może służyć w celu oznaczania zasobów do których dostęp powinien mieć tylko zalogowany użytkownik. | |||
Może służyć w celu oznaczania zasobów do których dostęp powinien mieć tylko zalogowany użytkownik. | |||
Wysłanie nagłówka 301 - plik przeniesiony | |||
== Wysłanie nagłówka 301 - plik przeniesiony == | |||
<pre> | |||
header('HTTP/1.1 301 Moved Permanently'); | header('HTTP/1.1 301 Moved Permanently'); | ||
</pre> | |||
Zastosowanie | Zastosowanie | ||
Wszędzie tam gdzie wykonujemy przekierowania. | |||
Jeżeli bot indeksujący napotka na 301 usunie on ze swojego indeksu aktualny link i zapamięta nowy!. | *Wszędzie tam gdzie wykonujemy przekierowania. | ||
*Jeżeli bot indeksujący napotka na 301 usunie on ze swojego indeksu aktualny link i zapamięta nowy!. | |||
Wysłanie nagłówka 500 - błąd konfiguracji serwera | |||
== Wysłanie nagłówka 500 - błąd konfiguracji serwera == | |||
<pre> | |||
header('HTTP/1.1 500 Internal Server Error'); | header('HTTP/1.1 500 Internal Server Error'); | ||
</pre> | |||
Zastosowanie | Zastosowanie | ||
Jeżeli napotkamy na poważny błąd w trakcie wykonywania skryptu możemy ładnie wypluć interialkę :) | *Jeżeli napotkamy na poważny błąd w trakcie wykonywania skryptu możemy ładnie wypluć interialkę :) | ||
== Przekierowanie użytkownika pod dowolny adres == | |||
<pre> | |||
header('Location: http://www.example.org/'); | header('Location: http://www.example.org/'); | ||
</pre> | |||
Zastosowanie | |||
*System logowania | |||
== Opóźnione przekierowanie użytkownika pod dowolny adres == | |||
header('Refresh: 10; url=http://www.example.org/'); | <pre>header('Refresh: 10; url=http://www.example.org/'); | ||
print 'Zostaniesz przekierowany na stronę xxx w ciągu 10 sekund'; | print 'Zostaniesz przekierowany na stronę xxx w ciągu 10 sekund'; | ||
</pre> | |||
Zastosowanie | Zastosowanie | ||
Linki wychodzące, w ciągu 10 sekund możemy wyświetlić informację "Opuszczasz nasz serwis... nie odpowiadamy za treść która znajduje się pod adresem xxx" | *Linki wychodzące, w ciągu 10 sekund możemy wyświetlić informację "Opuszczasz nasz serwis... nie odpowiadamy za treść która znajduje się pod adresem xxx" | ||
== Przekierowanie HTML (to samo co wyżej tylko w wersji HTML) == | |||
<pre> | |||
<meta http-equiv="refresh" content="10;http://www.example.org/ /> | <meta http-equiv="refresh" content="10;http://www.example.org/ /> | ||
</pre> | |||
Nadpisanie zawartość "Powered by". | == Nadpisanie zawartość "Powered by". == | ||
<pre> | |||
header('X-Powered-By: PHP/4.4.0'); | header('X-Powered-By: PHP/4.4.0'); | ||
header('X-Powered-By: Brain/0.6b'); | header('X-Powered-By: Brain/0.6b'); | ||
</pre> | |||
Zastosowanie | Zastosowanie | ||
Ochrona serwera, ukrywanie prawdziwej nazwy i wersji usługi. | *Ochrona serwera, ukrywanie prawdziwej nazwy i wersji usługi. | ||
Informacja o ostatniej modyfikacji pliku | == Wysłanie informacji o języku strony: == | ||
<pre>header('Content-language: pl'); | |||
</pre> | |||
== Informacja o ostatniej modyfikacji pliku == | |||
<pre> | |||
$time = time() - 60; // or filemtime($fn), etc | $time = time() - 60; // or filemtime($fn), etc | ||
header('Last-Modified: '.gmdate('D, d M Y H:i:s', $time).' GMT'); | header('Last-Modified: '.gmdate('D, d M Y H:i:s', $time).' GMT'); | ||
</pre> | |||
Zastosowanie | Zastosowanie | ||
Cachowanie | *Cachowanie | ||
Informacja o braku zmian w pliku | |||
== Informacja o braku zmian w pliku == | |||
<pre> | |||
header('HTTP/1.1 304 Not Modified'); | header('HTTP/1.1 304 Not Modified'); | ||
</pre> | |||
Zastosowanie | Zastosowanie | ||
Cachowanie | *Cachowanie | ||
Informacja o rozmiarze pliku | == Informacja o rozmiarze pliku == | ||
<pre> | |||
header('Content-Length: 1234'); | header('Content-Length: 1234'); | ||
</pre> | |||
Zastosowanie | Zastosowanie | ||
Cachowanie, obliczanie w przeglądarce % pobierania pliku. | *Cachowanie, obliczanie w przeglądarce % pobierania pliku. | ||
== Nagłówki służące pobieraniu plików == | |||
<pre> | |||
header('Content-Type: application/octet-stream'); | header('Content-Type: application/octet-stream'); | ||
header('Content-Disposition: attachment; filename="example.zip"'); | header('Content-Disposition: attachment; filename="example.zip"'); | ||
Linia 104: | Linia 154: | ||
// load the file to send: | // load the file to send: | ||
readfile('example.zip'); | readfile('example.zip'); | ||
</pre> | |||
Zastosowanie | Zastosowanie | ||
Pobieranie plików statycznych lub dynamicznych. | *Pobieranie plików statycznych lub dynamicznych. | ||
Zapobiega wyświetlaniu treści w przeglądarce. | Zapobiega wyświetlaniu treści w przeglądarce. | ||
== Wyłączenie cachowania pliku == | |||
<pre> | |||
header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate'); | header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate'); | ||
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past | header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past | ||
header('Pragma: no-cache'); | header('Pragma: no-cache'); | ||
</pre> | |||
Zastosowanie: | Zastosowanie: | ||
Blokada cachowania... | *Blokada cachowania... | ||
== Ustawienie typu pliku == | |||
<pre> | |||
header('Content-Type: text/html; charset=iso-8859-1'); | header('Content-Type: text/html; charset=iso-8859-1'); | ||
header('Content-Type: text/html; charset=utf-8'); | header('Content-Type: text/html; charset=utf-8'); | ||
Linia 130: | Linia 185: | ||
header('Content-Type: audio/mpeg'); // Audio MPEG (MP3,...) file | header('Content-Type: audio/mpeg'); // Audio MPEG (MP3,...) file | ||
header('Content-Type: application/x-shockwave-flash'); // animacja flasz | header('Content-Type: application/x-shockwave-flash'); // animacja flasz | ||
</pre> | |||
Zastosowanie | Zastosowanie | ||
Dynamiczne wysyłanie do przeglądarki treści generowanych przez PHP | *Dynamiczne wysyłanie do przeglądarki treści generowanych przez PHP | ||
== Wyświetlanie okna logowania HTTP == | |||
<pre> | |||
header('HTTP/1.1 401 Unauthorized'); | header('HTTP/1.1 401 Unauthorized'); | ||
header('WWW-Authenticate: Basic realm="Top Secret"'); | header('WWW-Authenticate: Basic realm="Top Secret"'); | ||
print 'Text that will be displayed if the user hits cancel or '; | print 'Text that will be displayed if the user hits cancel or '; | ||
print 'enters wrong login data'; | print 'enters wrong login data'; | ||
</pre> | |||
Zastosowanie | Zastosowanie | ||
System autoryzacji | *System autoryzacji | ||
[[Category:PHP]] |
Aktualna wersja na dzień 01:37, 11 mar 2010
Funkcja header() służąca wysyłaniu nagłówków serwera z poziomu PHP może być wykorzystywana do wielu celów.
Większość osób korzysta z niej w celu przekierowania użytkownika z jednej strony na druga, jednak liczba zastosowań jest o wiele większa.
Wysłanie nagłówka 200 - strona wysłana poprawnie
header('HTTP/1.1 200 OK');
Zastosowanie
- W wypadku jeżeli praktycznie otrzymamy stronę 404 możemy łatwo oszukać użytkownika lub boty indeksujące wysyłając powyższy nagłówek oraz generując treść przyjazną dla człowieka zawierającą aktualne informacje.
Wysłanie nagłówka 404 - brak żądanego pliku
header('HTTP/1.1 404 Not Found');
Zastosowanie
- Może służyć w celu oszukania użytkownika który próbuje uzyskać dostęp do niedozwolonych zasobów.
Wszak 404 brzmi mniej kusząco niż dostęp zabroniony :)
Wysłanie nagłówka 404 - brak dostępu
header('HTTP/1.1 403 Forbidden');
Zastosowanie
- Może służyć w celu oznaczania zasobów do których dostęp powinien mieć tylko zalogowany użytkownik.
Wysłanie nagłówka 301 - plik przeniesiony
header('HTTP/1.1 301 Moved Permanently');
Zastosowanie
- Wszędzie tam gdzie wykonujemy przekierowania.
- Jeżeli bot indeksujący napotka na 301 usunie on ze swojego indeksu aktualny link i zapamięta nowy!.
Wysłanie nagłówka 500 - błąd konfiguracji serwera
header('HTTP/1.1 500 Internal Server Error');
Zastosowanie
- Jeżeli napotkamy na poważny błąd w trakcie wykonywania skryptu możemy ładnie wypluć interialkę :)
Przekierowanie użytkownika pod dowolny adres
header('Location: http://www.example.org/');
Zastosowanie
- System logowania
Opóźnione przekierowanie użytkownika pod dowolny adres
header('Refresh: 10; url=http://www.example.org/'); print 'Zostaniesz przekierowany na stronę xxx w ciągu 10 sekund';
Zastosowanie
- Linki wychodzące, w ciągu 10 sekund możemy wyświetlić informację "Opuszczasz nasz serwis... nie odpowiadamy za treść która znajduje się pod adresem xxx"
Przekierowanie HTML (to samo co wyżej tylko w wersji HTML)
<meta http-equiv="refresh" content="10;http://www.example.org/ />
Nadpisanie zawartość "Powered by".
header('X-Powered-By: PHP/4.4.0'); header('X-Powered-By: Brain/0.6b');
Zastosowanie
- Ochrona serwera, ukrywanie prawdziwej nazwy i wersji usługi.
Wysłanie informacji o języku strony:
header('Content-language: pl');
Informacja o ostatniej modyfikacji pliku
$time = time() - 60; // or filemtime($fn), etc header('Last-Modified: '.gmdate('D, d M Y H:i:s', $time).' GMT');
Zastosowanie
- Cachowanie
Informacja o braku zmian w pliku
header('HTTP/1.1 304 Not Modified');
Zastosowanie
- Cachowanie
Informacja o rozmiarze pliku
header('Content-Length: 1234');
Zastosowanie
- Cachowanie, obliczanie w przeglądarce % pobierania pliku.
Nagłówki służące pobieraniu plików
header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="example.zip"'); header('Content-Transfer-Encoding: binary'); // load the file to send: readfile('example.zip');
Zastosowanie
- Pobieranie plików statycznych lub dynamicznych.
Zapobiega wyświetlaniu treści w przeglądarce.
Wyłączenie cachowania pliku
header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate'); header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past header('Pragma: no-cache');
Zastosowanie:
- Blokada cachowania...
Ustawienie typu pliku
header('Content-Type: text/html; charset=iso-8859-1'); header('Content-Type: text/html; charset=utf-8'); header('Content-Type: text/plain'); // plain text file header('Content-Type: image/jpeg'); // JPG picture header('Content-Type: application/zip'); // ZIP file header('Content-Type: application/pdf'); // PDF file header('Content-Type: audio/mpeg'); // Audio MPEG (MP3,...) file header('Content-Type: application/x-shockwave-flash'); // animacja flasz
Zastosowanie
- Dynamiczne wysyłanie do przeglądarki treści generowanych przez PHP
Wyświetlanie okna logowania HTTP
header('HTTP/1.1 401 Unauthorized'); header('WWW-Authenticate: Basic realm="Top Secret"'); print 'Text that will be displayed if the user hits cancel or '; print 'enters wrong login data';
Zastosowanie
- System autoryzacji