Zmienne predefiniowane
Przy każdym wywołaniu strony w PHP automatycznie tworzone są zmienne, które zawierają informacje na temat skryptu, środowiska serwera i samego odwołania. Nazywa się je zmiennymi predefiniowanymi. Są one dostępne w każdym zasięgu, więc mówi się, że są "superglobalne".
W Manualu jest dobrze napisany rozdział na ten temat, jednak jest w większości po angielsku. W tym artykule postaram się zatem przedstawić pokrótce najważniejsze i najczęściej używane zmienne.
Jak tego używać?
Do zmiennych predefiniowanych odwołujemy się poprzez tablice w następujący sposób: $typ_zmiennej['nazwa'], np. $_SERVER['SCRIPT_NAME'].
Wygodnym sposobem sprawdzania w swoim skrypcie wartości, jakie przyjmują aktualnie wszystkie zmienne predefiniowane jest wywołanie funkcji phpinfo:
![]()
phpinfo();
![]()
W bloku "PHP Variables" znajduje się przejrzysta tabela ze spisem nazw zmiennych i ich wartości.
Opis zmiennych
Zmienne $_SERVER
| Nazwa | Opis | Przykład wartości |
|---|---|---|
| REMOTE_ADDR | Adres IP, z którego wysłano zapytanie. | 12.34.56.78 |
| SCRIPT_NAME | Ścieżka aktualnie wykonywanego skryptu. | /katalog/skrypt.php |
| REQUEST_URI | Adres URI podany w celu wyświetlenia strony. | /strona.php?a=4542 |
| QUERY_STRING | Treść wysłanego zapytania. | index.php?a=2&b=hello |
| SERVER_NAME | Nazwa serwera, na którym znajduje się skrypt. | www.compzone.org |
| SERVER_SOFTWARE | Informacje o oprogramowaniu zainstalowanym na serwerze. | Apache/2.0.53 (Win32) mod_ssl/2.0.53 OpenSSL/0.9.7f PHP/5.0.4 |
| SERVER_PROTOCOL | Nazwa i wersja protokołu użytego przy połączeniu. | HTTP/1.1 |
| SERVER_ADMIN | Ustawiony w kofiguracji serwera adres e-mail administratora | admin@xyz.xyz |
| SERVER_PORT | Numer portu użytego do połączenia. | 80 |
| SERVER_SIGNATURE | "Podpis" serwera | Apache/2.0.53 (Win32) mod_ssl/2.0.53 OpenSSL/0.9.7f PHP/5.0.4 Server at localhost Port 80 |
| GATEWAY_INTERFACE | Wersja CGI używana przez serwer. | CGI/1.1 |
| REQUEST_METHOD | Metoda, która została użyta do wywołania strony. | GET, POST, HEAD, PUT |
| DOCUMENT_ROOT | Ścieżka pod którą serwer wykonuje skrypt. | /home/user/public_html |
| HTTP_ACCEPT | Treść nagłówka zapytania. | text/xml,application/xml, application/xhtml+xml, text/html;q=0.9, text/plain;q=0.8, image/png, */*;q=0.5 |
| HTTP_ACCEPT_LANGUAGE | Zawartość "Accept-Language" w nagłówku zapytania | pl,en-us |
| HTTP_ACCEPT_ENCODING | Zawartość "Accept-Encoding" w nagłówku zapytania. | gzip,deflate |
| HTTP_ACCEPT_CHARSET | Zawartość "Accept-Charset" w nagłówku zapytania. | ISO-8859-2,utf-8 |
| HTTP_CONNECTION | Zawartość "Connection" w nagłówku zapytania. | keep-alive |
| PHP_SELF | Ścieżka do wykonywanego skryptu względem głównego katalogu. | /strona/index.php |
- Zmienne $_GET - zmienne dostarczone do skryptu metodą GET, bardziej zrozumiałym językiem: zmienne przesłane w adresie strony w formacie index.php?a=lala&b=bleble
- Zmienne $_POST - zmienne dostarczone do skryptu metodą POST, czyli przesłane za pomocą HTML'owego formularza
- Zmienne $_FILES - dane plików przesłanych do formularza metodą POST
- Zmienne $_COOKIE - zmienne dostarczone do skryptu przez ciasteczka (ang. cookies)
- Zmienne $_ENV - zmienne tworzone przez środowisko operacyje serwera, zawierające informacje na jego temat. Są używane rzadziej niż inne, więc nie będę opisywał ich szczegółowo (ich spis jest również dostępny w tabeli wyświetlanej funkcją phpinfo)
- Zmienne $_SESSION - zmienne utworzone przez sesje


