Przykłady użycia funkcji header() w PHP: Różnice pomiędzy wersjami
(Utworzył nową stronę „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 przekiero…”) |
|||
Linia 32: | Linia 32: | ||
Zastosowanie | Zastosowanie | ||
Wszędzie tam gdzie wykonujemy przekierowania. | Wszędzie tam gdzie wykonujemy przekierowania. | ||
Jeżeli | 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'); | 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/'); | 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/'); | header('Refresh: 10; url=http://www.example.org/'); | ||
print ' | 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: PHP/4.4.0'); | ||
header('X-Powered-By: Brain/0.6b'); | header('X-Powered-By: Brain/0.6b'); | ||
Zastosowanie | |||
Ochrona serwera, ukrywanie prawdziwej nazwy i wersji usługi. | |||
// content language (en = English) | // content language (en = English) |
Wersja z 03:08, 18 lut 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. // content language (en = English) header('Content-language: en'); // last modified (good for caching) $time = time() - 60; // or filemtime($fn), etc header('Last-Modified: '.gmdate('D, d M Y H:i:s', $time).' GMT'); // header for telling the browser that the content // did not get changed header('HTTP/1.1 304 Not Modified'); // set content length (good for caching): header('Content-Length: 1234'); // Headers for an download: 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'); // Disable caching of the current document: 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'); // set content type: 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'); // Flash animation // show sign in box 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';