|
|
| 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.
| | xTzWtq <a href="http://gbcxslfkatiu.com/">gbcxslfkatiu</a>, [url=http://cwqwpliopoeu.com/]cwqwpliopoeu[/url], [link=http://zynectkkmwqw.com/]zynectkkmwqw[/link], http://yvifgewnzyam.com/ |
| | |
| 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');
| |
| </pre>
| |
| | |
| 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 ==
| |
| | |
| <pre>
| |
| header('HTTP/1.1 404 Not Found');
| |
| </pre>
| |
| | |
| 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 ==
| |
| | |
| <pre>
| |
| 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.
| |
| | |
|
| |
| | |
| == Wysłanie nagłówka 301 - plik przeniesiony ==
| |
| | |
| <pre>
| |
| header('HTTP/1.1 301 Moved Permanently');
| |
| </pre>
| |
| | |
| 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 ==
| |
| | |
| | |
| <pre>
| |
| header('HTTP/1.1 500 Internal Server Error');
| |
| </pre>
| |
| Zastosowanie
| |
| *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/');
| |
| </pre>
| |
| Zastosowanie
| |
| *System logowania
| |
| | |
| | |
| == Opóźnione przekierowanie użytkownika pod dowolny adres ==
| |
| | |
| | |
| <pre>header('Refresh: 10; url=http://www.example.org/');
| |
| print 'Zostaniesz przekierowany na stronę xxx w ciągu 10 sekund';
| |
| </pre>
| |
| | |
| 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) ==
| |
| | |
| <pre>
| |
| <meta http-equiv="refresh" content="10;http://www.example.org/ />
| |
| </pre>
| |
| | |
| | |
| == Nadpisanie zawartość "Powered by". ==
| |
| | |
| <pre>
| |
| header('X-Powered-By: PHP/4.4.0');
| |
| header('X-Powered-By: Brain/0.6b');
| |
| </pre>
| |
| Zastosowanie
| |
| *Ochrona serwera, ukrywanie prawdziwej nazwy i wersji usługi.
| |
|
| |
| | |
| | |
| == 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
| |
| header('Last-Modified: '.gmdate('D, d M Y H:i:s', $time).' GMT');
| |
| </pre>
| |
| | |
| Zastosowanie
| |
| *Cachowanie
| |
|
| |
| | |
| | |
| == Informacja o braku zmian w pliku ==
| |
| | |
| <pre>
| |
| header('HTTP/1.1 304 Not Modified');
| |
| </pre>
| |
| | |
| Zastosowanie
| |
| *Cachowanie
| |
| | |
| | |
| | |
| == Informacja o rozmiarze pliku ==
| |
| | |
| <pre>
| |
| header('Content-Length: 1234');
| |
| </pre>
| |
| | |
| Zastosowanie
| |
| *Cachowanie, obliczanie w przeglądarce % pobierania pliku.
| |
| | |
| | |
| | |
| == Nagłówki służące pobieraniu plików ==
| |
| | |
| | |
| <pre>
| |
| 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');
| |
| </pre>
| |
| | |
| Zastosowanie
| |
| *Pobieranie plików statycznych lub dynamicznych.
| |
| Zapobiega wyświetlaniu treści w przeglądarce.
| |
| | |
| | |
| | |
| LvvEAQ <a href="http://ppyuxezsrosv.com/">ppyuxezsrosv</a>, [url=http://kswpccufuuvu.com/]kswpccufuuvu[/url], [link=http://fgcsoshstaof.com/]fgcsoshstaof[/link], http://texfjrlxqqho.com/
| |
| | |
| == Ustawienie typu pliku ==
| |
| | |
| <pre>
| |
| 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
| |
| </pre>
| |
| Zastosowanie
| |
| *Dynamiczne wysyłanie do przeglądarki treści generowanych przez PHP
| |
|
| |
| | |
| | |
| == Wyświetlanie okna logowania HTTP ==
| |
| | |
| <pre>
| |
| 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';
| |
| </pre>
| |
| | |
| Zastosowanie
| |
| *System autoryzacji
| |
| | |
| | |
| | |
| [[Category:PHP]]
| |