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.
W celu zapoznania się ze wszystkimi predefiniowanymi zmiennymi (i mnóstwem innych, użytecznych informacji) użyj phpinfo().
Notatka: Poniższa lista nie jest i nie będzie wyczerpująca. Jest to wyłącznie wskazówka, jakich rodzajów predefiniowanych zmiennych możesz użyć w swoim skrypcie.
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ń.
Określa wersję specyfikacji CGI obsługiwaną przez serwer, np. "CGI/1.1".
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.
Napis identyfikujący serwer, wysyłany z nagłówkami przy odpowiedzi na zapytanie.
Nazwa i wersja protokołu informacyjnego, przez który zostało wysłane zapytanie, np. "HTTP/1.1".
Metoda, która została użyta przy zapytaniu o dokument, np. "GET", "HEAD", "POST".
Łańcuch zapytania (np. ?foo=bar), o ile istnieje, jaki został przesłany z zapytaniem o stronę.
Folder główny na serwerze, taki jak określony w pliku konfiguracyjnym serwera.
Zawartość nagłówka Accept: z aktualnego zapytania, o ile taki występuje.
Zawartość nagłówka Accept-Charset: z aktualnego zapytania, o ile taki występuje, np. "iso-8859-1,*,utf-8". 'iso-8859-1,*,utf-8'.
Zawartość nagłówka Accept-Encoding: z aktualnego zapytania, o ile taki występuje, np. "gzip".
Zawartość nagłówka Accept-Language: z aktualnego zapytania, o ile taki występuje, np. "en".
Zawartość nagłówka Connection: z aktualnego zapytania, o ile taki występuje, np. "Keep-Alive".
Zawartość nagłówka Host: z aktualnego zapytania, o ile taki występuje.
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ę.
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.
Numer IP zdalnego użytkownika przeglądającego stronę.
Port używany na zdalnej maszynie, przez który następuje komunikacja z serwerem.
Bezwzględna ścieżka do aktualnie wykonywanego skrytpu.
Wartość podana w dyrektywie SERVER_ADMIN (dla Apache'a) w pliku konfiguracyjnym serwera. Jeśli skrypt jest uruchomiony na hoście wirtualnym, wtedy będzie to wartość określona dla tego hosta wirtualnego.
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.
Napis zawierający nazwę i wersję serwera, oraz nazwę wirtualnego hosta, który jest dodawany do stron generowanych przez serwer, o ile włączony.
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.
Zawiera ścieżkę do aktualnego skryptu. Przydatne przy stronach, które mają wskazywać na siebie same.
URI, który został podany, aby uzyskać dostęp do aktualnej strony, np. "/index.html".
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 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.
Notatka: Nowe "Superglobale" zostały dodane w PHP 4.1.0. Więcej szczegółów znajduje się w 4.1.0 Release Announcement. Są to tablice $_GET, $_POST, $_ENV, $_SERVER, $_COOKIE, $_REQUEST, $_FILES i $_SESSION; nieformalnie zwane Superglobale, ponieważ są zawsze dostępne dla programisty, niezależnie od aktualnego zasięgu innych zmiennych. Powyższe zmienne zastępują starsze tablice $HTTP_*_VARS.
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 i $_*. Więcej informacji znajduje się w rozdziale poświęconym bezpieczeństwu, zatytułowanym Wykorzystywanie Zarejestrowanych Globali.
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).
Liczba argumentów przekazanych do skryptu (jeśli uruchamiany z linii poleceń).
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. Zmienna ta zawiera informację o ścieżce do pliku, o ile taka istnieje (np. $PHP_SELF pod takim adresem: "http://example.com/test.php/foo.bar" zawierać będzie "/test.php/foo.bar").
Tablica asocjacyjna zmiennych przekazanych do skryptu przez ciasteczka HTTP.
Tablica asocjacyjna zmiennych przekazanych do skryptu przez ciasteczka HTTP. Zawsze globalna w każdym zasięgu. Wprowadzona w PHP 4.1.0.
Tablica asocjacyjna zmiennych przekazanych do skryptu metodą GET protokołu HTTP.
Tablica asocjacyjna zmiennych przekazanych do skryptu metodą GET protokołu HTTP. Zawsze globalna w każdym zasięgu. Wprowadzona w PHP 4.1.0.
Tablica asocjacyjna zmiennych przekazanych do skryptu metodą POST protokołu HTTP.
Tablica asocjacyjna zmiennych przekazanych do skryptu metodą POST protokołu HTTP. Zawsze globalna w każdym zasięgu. Wprowadzona w PHP 4.1.0.
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. Wprowadzona w PHP 4.0.0.
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 $_FILES. Zawsze globalna w każdym zasięgu. Wprowadzona w PHP 4.1.0.
Tablica asocjacyjna zmiennych przekazanych do skryptu ze środowiska operacyjnego serwera.
Tablica asocjacyjna zmiennych przekazanych do skryptu ze środowiska operacyjnego serwera. Zawsze globalna w każdym zasięgu. Wprowadzona w PHP 4.1.0.
Tablica asocjacyjna zmiennych przekazanych do skryptu z serwera HTTP. Zmienne te są analogiczne do zmiennych Apache'a, opisanych powyżej.
Tablica asocjacyjna zmiennych przekazanych do skryptu z serwera HTTP. Zmienne te są analogiczne do zmiennych Apache'a, opisanych powyżej. Zawsze globalna w każdym zasięgu. Wprowadzona w PHP 4.1.0.
Tablica asocjacyjna zmiennych sesji przekazanych do skryptu.
Tablica asocjacyjna zmiennych sesji przekazanych do skryptu. Zawsze globalna w każdym zasięgu. Dodawanie nowych wpisów do tablicy $_SESSION powoduje automatyczne zarejestrowanie ich jako zmiennych sesji, tak jakby wywołać session_register(). Wprowadzona w PHP 4.1.0.
Tablica asocjacyjna, stanowiąca połączenie zmiennych z GET, POST i ciasteczek. Innymi słowy - cała informacja przychodząca od użytkownika. Tablica ta z punktu widzenia bezpieczeństwa nie może być godna zaufania. Wprowadzona w PHP 4.1.0.
Poprzedni | Spis treści | Następny |
Zmienne | Początek rozdziału | Zasięg zmiennych |