Zmienne środowiskowe są bardzo pożytecznym narzędziem. Pozwalają wyświetlić rozmaite dane, które są dostarczane przez przeglądarkę gościa naszej strony WWW, a także o parametrach samego serwera. Z pewnością warto je poznać, gdyż naprawdę często przydają się w codziennej praktyce.
Zmienne środowiskowe dostępne są poprzez tablicę $_SERVER, która jest dostępna w każdym skrypcie.
W opisanych przykładach posługiwaliśmy się zmiennymi globalnymi tj. „REQUEST_URI” czy „HTTP_REFERER”. Zmiennych tych jest znacznie więcej.
Zmienne przeglądarki:
- HTTP_USER_AGENT (zawiera identyfikator przeglądarki)
- HTTP_REFERER (adres, z którego nastąpił przeklik)
- HTTP_COOKIE (zawiera cookie)
- HTTP_HOST (adres wywołanego hosta)
- HTTP_ACCEPT (informacje o dokumentach, jakie przyjmuje przeglądarka)
- HTTP_ACCEPT_LANGUAGE (domyślny język przeglądarki)
- HTTP_ACCEPT_ENCODING (informacja, czy przeglądarka akceptuje skompresowane dokumenty)
- HTTP_ACCEPT_CHARSET (lista akceptowanych kodowań znaków w dokumencie)
- HTTP_CONNECTION (tryb połączenia)
Zmienne wywołania:
- REMOTE_ADDR (adres IP komputera klienta)
- REMOTE_HOST (nazwa hosta klienta)
- REMOTE_USER (nazwa zautoryzowanego użytkownika)
- REMOTE_PORT (port, po którym nastąpiło wywołanie)
- AUTH_TYPE (rodzaj autoryzacji – Basic lub Digest)
Zmienne z informacją o uruchomionym skrypcie
- SCRIPT_URL (logiczny adres, bez adresu hosta)
- SCRIPT_URI (pełny adres wywołania)
- SCRIPT_FILENAME (nazwa wywołanego pliku wraz z pełną ścieżką lokalną)
- SCRIPT_NAME (nazwa wywołanego skryptu)
Zmienne z informacją o zapytaniu:
- REQUEST_URI (zawiera adres wywołania strony wraz z parametrami)
- REQUEST_FILENAME (pełna lokalna ścieżka do wywoływanego pliku)
- REQUEST_METHOD (metoda przesyłania parametrów – GET lub POST)
Zmienne SSL:
- SSL_PROTOCOL (wersja protokołu szyfrującego)
- SSL_CIPHER (metoda szyfrowania)
- SSL_CIPHER_USEKEYSIZE (aktualny rozmiar klucza)
- SSL_CIPHER_USEMACSIZE (maksymalny rozmiar klucza)
- SSL_VERSION_LIBRARY (nazwa bilbioteki SSL oraz jej wersja)
- HTTPS (w przypadku połączenia SSL zawiera wartość „on”)
Zmienne serwera:
- SERVER_ADMIN (adres email administratora)
- SERVER_NAME (adres serwera)
- SERVER_ADDR (adres IP serwera)
- SERVER_PORT (adres portu użyty przy wywołaniu strony)
- SERVER_ID (identyfikator serwera)
- SERVER_PROTOCOL (informacje o protokole – zazwyczaj HTTP/1.1)
- SERVER_SOFTWARE (nazwa oprogramowania serwera WWW – IdeaWebServer)
- DOCUMENT_ROOT (ścieżka do głównego katalogu)
Zmienne czasu:
- TIME_YEAR (aktualny rok)
- TIME_MON (aktualny miesiąc)
- TIME_DAY (aktualny dzień)
- TIME_HOUR (aktualna godzina)
- TIME_MIN (aktualne minuty w godzinie)
- TIME_SEC (aktualne sekundy w minucie)
- TIME_WDAY (nazwa aktualnego dnia tygodnia)
- TIME (aktualny czas w postaci yyyymmddhhmmss np. 20040101120000)
Zmienne mod_rewrite:
- QUERY_STRING (lista parametrów przesłanych do skryptu)
- THE_REQUEST (pełne zapytanie HTTP wysłane do serwera np. „GET /index.html HTTP/1.1”)
- IS_SUBREQ (informacja czy aktualnie przetwarzane zapytanie jest sub-zapytaniem. Z racji braku obsługi sub-zapytań przez oprogramowanie IdeaWebServer, wartość tej zmiennej jest ustawiona na „no”)
Pozostałe zmienne:
- PATH_INFO (zawiera dopełnienie ścieżki np. ścieżka /pokaz.php/348 jest dopełnieniem do /348)
- PATH_TRANSLATED (lokalna, systemowa ścieżka do URLa dopełnienia)
- REDIRECT_URL (oryginalny adres wywołania przed przekierowaniem)
- REDIRECT_STATUS (zawiera oryginalny kod odpowiedzi serwera, którego efektem było przekierowanie za pomocą ErrorDoc)
W PHP uruchomionym na środowisku Apache niedostępne są:
- SCRIPT_URL
- SCRIPT_URI
- REQUEST_FILENAME
- SSL_*
- TIME_*
- THE_REQUEST
- IS_SUBREQ
Zmienne % {TIME_*} sa dostepne normalnie w .htaccess, np.:
RewriteEngine On RewriteCond %{TIME_HOUR} >20 RewriteCond %{TIME_HOUR} <8 RewriteRule .* /nieczynne.html [R]
Jakie artykuły na temat mod_rewrite znajdę w dokumentacji home.pl?
- Informacje podstawowe na temat przepisywania linków – mod_rewrite
- Zaawansowane przykłady rozwiązań w mod_rewrite
- Reguły przepisania w mod_rewrite
- Dodatkowe warunki dopasowania w mod_rewrite
- Przekierowanie 301 w pliku .htaccess
Dedykowane wsparcie IT i megarabaty!
Pomoc Premium dedykujemy najbardziej wymagającym Klientom home.pl. Powiedz, co możemy dla Ciebie zrobić i oszczędzaj czas.