Zmienne PredefiniowanePodręcznik PHPPoprzedniRozdział 7. ZmienneNastępnyZmienne Predefiniowane
PHP udostępnia dużą ilość predefiniowanych zmiennych dla każdego pracującego
skryptu. Jednakże wiele spośród tych zmiennych nie może być w pełni
objaśnionych, gdyż są zależne od rodzaju serwera, jego wersji i ustawień
i innych czynników. Niektóre z tych zmiennych nie będą dostępne dla
skryptów PHP uruchomionych z linii poleceń.
Niezależnie od wymienionych czynników, poniżej przedstawiamy listę
predefiniowanych zmiennych, dostępnych w typowej instalacji PHP 3,
działającej jako moduł typowej instalacji Apache 1.3.6.
Dla zapoznania się ze wszystkimi predefiniowanymi zmiennymi (i mnóstwem
innych, użytecznych informacji) proszę użyć phpinfo().
Notatka:
Poniższa lista nie jest i nie będzie wyczerpująca. Jest to wyłącznie
wskazówka, jakie rodzaje predefiniowanych zmiennych możesz użyć w swoim
skrypcie.
Zmienne Apache'a
Zmienne te dostarczane są przez serwer www Apache. Jeśli używasz innego serwera, nie ma
żadnej gwarancji, że zmienne te będą dostępne. Inny serwer może pominąć
jakąś zmienną lub dostarczać zmienne inne niż te. Jakkolwiek spora część
tych zmiennych jest zarejestrowana w
specyfikacji CGI 1.1, więc dostęp do
nich powinien być możliwy.
Pamiętaj, że tylko kilka, jeśli w ogóle, spośród tych zmiennych jest
dostępnych (albo będzie mieć jakiekolwiek znaczenie) kiedy skrypt PHP
jest uruchomiony z linii poleceń.
$GATEWAY_INTERFACE
Określa wersję specyfikacji CGI obsługiwaną przez serwer, np.
"CGI/1.1".
$SERVER_NAME
Nazwa hosta serwera, na którym skrypt jest wykonywany. Jeśli skrypt
pracuje na hoście wirtualnym (ang. virtual host), zmienna będzie
zawierać nazwę hosta wirtualnego.
$SERVER_SOFTWARE
Napis identyfikujący serwer, wysyłany z nagłówkami przy odpowiedzi
na zapytanie.
$SERVER_PROTOCOL
Nazwa i wersja protokołu informacyjnego, przez który zostało wysłane
zapytanie, np. "HTTP/1.1".
$REQUEST_METHOD
Która metoda została użyta przy zapytaniu o dokument, np. "GET",
"HEAD", "POST".
$QUERY_STRING
Łańcuch zapytania (np. ?foo=bar), o ile istnieje, jaki został
przesłany z zapytaniem o stronę.
$DOCUMENT_ROOT
Folder główny na serwerze, taki jak określony w pliku konfiguracyjnym
serwera.
$HTTP_ACCEPT
Zawartość nagłówka Accept: z aktualnego zapytania,
o ile taki występuje.
$HTTP_ACCEPT_CHARSET
Zawartość nagłówka Accept-Charset: z aktualnego
zapytania, o ile taki występuje, np. "iso-8859-1,*,utf-8".
'iso-8859-1,*,utf-8'.
$HTTP_ACCEPT_ENCODING
Zawartość nagłówka Accept-Encoding: z aktualnego
zapytanie, o ile taki występuje, np. "gzip".
$HTTP_ACCEPT_LANGUAGE
Zawartość nagłówka Accept-Language: z aktualnego
zapytanie, o ile taki występuje, np. "en".
$HTTP_CONNECTION
Zawartość nagłówka Connection: z aktualnego
zapytanie, o ile taki występuje, np. "Keep-Alive".
$HTTP_HOST
Zawartość nagłówka Host: z aktualnego
zapytanie, o ile taki występuje.
$HTTP_REFERER
Adres strony (o ile występuje) z której przeglądarka przeszła do tej
strony. Nagłówek jest tworzony przez przeglądarkę użytkownika; nie
wszystkie przeglądarki udostępniają taką informację.
$HTTP_USER_AGENT
Zawartość nagłówka User_Agent: z aktualnego
zapytania, o ile taki występuje. Jest to napis identyfikujący
oprogramowanie klienckie używane do obejrzenia danej strony,
np. Mozilla/4.5 [en] (X11; U; Linux
2.2.9 i586). Można użyć tej informacji
w połączeniu z get_browser(), aby dopasować
stronę do możliwości przeglądarki użytkownika.
$REMOTE_ADDR
Numer IP zdalnego użytkownika przeglądającego stronę.
$REMOTE_PORT
Port używany na zdalnej maszynie, przez który następuje komunikacja
z serwerem.
$SCRIPT_FILENAME
Bezwzględna ścieżka do aktualnie wykonywanego skrytpu.
$SERVER_ADMIN
Wartość podana w dyrektywie SERVER_ADMIN (dla Apache'a) w pliku
kofiguracyjnym serwera. Jeśli skrypt jest uruchomiony na hoście
wirtualnym, wtedy będzie to wartość określona dla tego hosta
wirtualnego.
$SERVER_PORT
Port na serwerze, używany przez serwer www do komunikacji. Domyślnie
jest to "80"; przy użyciu SSL, na przykład, będzie to numer portu
na którym odbywają się zabezpieczone połączenia HTTP.
$SERVER_SIGNATURE
Napis zawierający nazwę i wersję serwera, oraz nazwę wirtualnego hosta,
który jest dodawany do stron generowanych przez serwer, o ile włączony.
$PATH_TRANSLATED
Bezwzględna ścieżka do pliku, oparta na systemie plików (a nie
wychodząca z folderu głównego serwera), określona po wykonaniu przez
serwer ewentualnego mapowania ścieżki wirtualnej do rzeczywistej.
$SCRIPT_NAME
Zawiera ścieżkę do aktualnego skryptu. Przydatne przy stronach, które
mają wskazywać na siebie same.
$REQUEST_URI
URI, który został podany, aby uzyskać dostęp do aktualnej strony,
np. "/index.html".
Zmienne środowiskowe
Te zmienne są importowane do przestrzeni nazw globalnych PHP ze środowiska
w jakim pracuje parser PHP. Wiele z nich jest udostępnianych przez
powłokę systemu, w którym pracuje PHP, a ponieważ różne systemy używają
różnych powłok, ścisła lista nie jest możliwa. Zapoznaj się z
dokumentacją twojej powłoki (shella), aby dowiedzieć się, jakie zmienne
środowiskowe ona udostępnia.
Niektóre zmienne środowiskowe zawierają zmienne CGI, w zależności od tego
czy PHP pracuje jako moduł serwera, czy skrypt CGI.
Zmienne PHP
Zmienne te tworzone są przez PHP. Zmienne $HTTP_*_VARS
są dostępne tylko, jeśli dyrektywa konfiguracyjna
track_vars jest włączona. Kiedy
dyrektywa jest włączona, zmienne są zawsze tworzone, nawet jeśli są
pustymi tablicami. Zabezpiecza to przed złośliwymi użytkownikami, którzy
mogliby podszywać swoje wartości pod te zmienne.
Notatka:
Od PHP 4.0.3 dyrektywa track_vars
jest zawsze włączona, niezależnie od wpisu w pliku konfiguracyjnym.
Jeśli dyrektywa register_globals jest włączona,
wtedy te zmienne będą również dostępne jako zmienne globalne, tzn.
niezależnie od tablic $HTTP_*_VARS. Dyrektywa ta
powinna być używana ostrożnie i wyłączona, jeśli to możliwe. O ile zmienne
$HTTP_*_VARS są bezpieczne, o tyle ich odpowiedniki
w postaci zmiennych globalnych mogą zostać nadpisane przez argumenty
przekazane od klienta, możliwie, że ze zwykłej złośliwości użytkownika.
Jeśli nie możesz wyłączyć register_globals, musisz podjąć
wszystkie niezbędne kroki w celu zabezpieczenia danych przed sfałszowaniem.
$argv
Tablica argumentów przekazanych do skryptu. Kiedy skrypt jest
uruchamiany z linii poleceń, daje ona dostęp w stylu języka C
do przełączników, z jakimi został wywołany skrypt. Kiedy skrypt
zostanie wywołany metodą GET, tablica będzie zawierać łańcuch znaków
zapytania (query string).
$argc
Liczba argumentów przekazanych do skryptu (jeśli uruchamiany z linii
poleceń).
$PHP_SELF
Nazwa pliku aktualnie wykonywanego skryptu, ze ścieżką względną od
głównego katalogu (document root). Jeśli PHP jest wywołane z linii
poleceń, zmienna jest niedostępna.
$HTTP_COOKIE_VARS
Tablica asocjacyjna zmiennych przekazanych do skryptu przez ciasteczka
HTTP.
$HTTP_GET_VARS
Tablica asocjacyjna zmiennych przekazanych do skryptu metodą GET
protokołu HTTP.
$HTTP_POST_VARS
Tablica asocjacyjna zmiennych przekazanych do skryptu metodą POST
protokołu HTTP.
$HTTP_POST_FILES
Tablica asocjacyjna zmiennych zawierających informację o plikach
wysłanych do serwera (uploadowanych) metodą POST. Zobacz wysyłanie plików metodą POST
aby dowiedzieć się więcej na temat zawartości
$HTTP_POST_FILES.
$HTTP_POST_FILES jest dostępna tylko w PHP 4.0.0
i późniejszych.
$HTTP_ENV_VARS
Tablica asocjacyjna zmiennych przekazanych do skryptu ze środowiska
operacyjnego serwera.
$HTTP_SERVER_VARS
Tablica asocjacyjna zmiennych przekazanych do skryptu z serwera HTTP.
Zmienne te są analogiczne do zmiennych Apache'a, opisanych powyżej.
PoprzedniSpis treściNastępnyZmiennePoczątek rozdziałuZasięg zmiennych
Wyszukiwarka
Podobne podstrony:
language variables predefinedlanguage variables predefinedlanguage variableslanguage constants predefinedlanguage variableslanguage constants predefinedlanguage variables scopelanguage variables variablelanguage variables scopelanguage variables externallanguage variables externallanguage variables scopelanguage variableslanguage constants predefinedlanguage variables variablelanguage variables externallanguage variableswięcej podobnych podstron