Előre definiált változók

A PHP egy számos előre definiált változót biztosít az bármely futó szkript számára. Sokat ezek közül nem lehet teljes pontossságal dokumentálni, mert függnek a a futtató szervertől, a használt verziótól, a konfigurálástól, és más gyéb tényezőktől. Néhány ilyen változó nem elérhető, ha a PHP parancssorból fut.

E tényezők ellenére az alábbi listában azok az előre definiált változók vannak felsorolva, amelyek a PHP 3 tipikus installálásakor elérhetők az Apache 1.3.6-ot használva.

Az összes előre definiált változó kilistázható, és sok más hasznos információt is közöl a phpinfo().

Megjegyzés: Ez a lista nem teljes, nem is ez a célja. Ez csak egy útmutató arról, hogy milyen típusú előre definiált változók lehetnek.

Apache változók

Ezek a változók az Apache webszerver változói. Ha másik szerveren fut a PHP, nincs rá garancia, hogy ugyanezek a változók akkor is rendelkezésre állnak: némelyik hiányozhat, esetleg itt nem szereplőket is biztosíthat a szerver. Számos a CGI 1.1 specifikációban dokumentált változókra biztosan lehet alapozni.

Figyelni kell arra, hogy ha a PHP parancssorból (command line) használva a változók töredékének van csak értelme, ha egyáltalán definiáltak ilyen esetben.

$GATEWAY_INTERFACE

A server CGI specifikációjának verziója. Pl.: 'CGI/1.1'.

$SERVER_NAME

A gazdagép (host) neve, ami alatt a szkript fut. Ha a szkript virtuális host-on fut, a virtuális host neve.

$SERVER_SOFTWARE

Serverazonosító sztring, amely a kérésekre (request) adott válasz (response) fejlécében (header) szerepel.

$SERVER_PROTOCOL

Az oldal lekéréséhez használt protokoll neve és verziója pl. 'HTTP/1.0'

$REQUEST_METHOD

Az oldal eléréséhez használt kérési forma, pl.: 'GET', 'HEAD', 'POST', 'PUT'.

$QUERY_STRING

Keresési kérdés, az oldalt meghívó URL-ben a ? után szereplő rész, ha létezik.

$DOCUMENT_ROOT

A www dokumentumok főkönyvtára, amely alatt a jelenlegi szkript fut. Ez a szerver konfigurációs fájljában meghatározott érték.

$HTTP_ACCEPT

Az aktuális kérés Accept: HTTP fejlécének tartalma, ha van ilyen. Ebben adja meg a böngésző, hogy milyen formátumokat képes fogadni.

$HTTP_ACCEPT_CHARSET

Az aktuális kérés Accept-Charset: HTTP fejlécének tartalma, ha van ilyen. pl. 'iso-8859-1,*,utf-8'.

$HTTP_ENCODING

Az aktuális kérés Accept-Encoding: HTTP fejlécének tartalma, ha van ilyen. pl. 'gzip'.

$HTTP_ACCEPT_LANGUAGE

Az aktuális kérés Accept-Language: HTTP fejlécének tartalma, ha van ilyen. pl. 'en'.

$HTTP_CONNECTION

Az aktuális kérés Connection: HTTP fejlécének tartalma, ha van ilyen. pl. 'Keep-Alive'.

$HTTP_HOST

Az aktuális kérés Host: HTTP fejlécének tartalma, ha éppen van ilyen.

$HTTP_REFERER

Annak az oldalnak az URL címe, ahonnan ide került a látogató. Ezt a látogató böngészőprogramja állítja be, de ezt nem minden böngésző és nem mindig teszi meg.

$HTTP_USER_AGENT

Az aktuális User_Agent: HTTP fejlécének tartalma, ha van ilyen. Ez a string, amely meghatározza az oldal megtekintéséhez használt böngészőt, pl. Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Sok más mellett ezt az értéket a fel lehet használni arra, hogy a get_browser() fügvénnyel az aktuális böngésző képességeinek megfelelően lehessen kialakítani az oldal megjelenését.

$REMOTE_ADDR

Az az IP cím, ahonnan a látogató az oldalt lekérte.

$REMOTE_PORT

A látogató gépén a webszerverrel való kommunikációhoz használt port száma.

$SCRIPT_FILENAME

A PHP szkript abszolút elérési útja a szerver gépen.

$SERVER_ADMIN

A SERVER_ADMIN a kiszolgáló konfigurációs fájl direktíva értéke (Apache alatt). Ha a szkript egy virtuális host-on fut, akkor ez a virtuális host-hoz rendelt érték.

$SERVER_PORT

A kiszolgálógépen a kiszolgáló kommunikációjában használt port száma. Alapértelmezés szerint ez a '80', de például SSL-t használva ez a biztonságos HTTP portnak a száma lesz.

$SERVER_SIGNATURE

A kiszolgáló verziószámát és a virtuális host-ot tartalmazó sztring, ha engedélyezett. Ez a szöveg jelenik meg minden szerver által generált oldal alján.

$PATH_INFO

Hasonló értéket tartalmaz, mint a SCRIPT_NAME, de CGI verzió esetén ez jobb lehet az önhivatkozó kérdőívek készítésekor, mert egyes szervereken a SCRIPT_NAME tartalmazza a PHP bináris meghívási útvonalát is.

$PATH_TRANSLATED

A szkript a fájlrendszer szerinti (nem a document root-hoz viszonyított!) elérési útja. Ezt a kiszolgáló a virtuális->valós átalakítás után határozza meg.

$SCRIPT_NAME

Az aktuális szkript elérési útja, ahogy az az URL-ben megjelenik. Hasznos a saját magukra mutató oldalakhoz.

$REQUEST_URI

Az az URI, amellyel az oldalt lekérték. pl. '/index.html'.

Környezeti változók

A PHP globális változói közé kerülnek a PHP feldolgozót futtató környezet változói. Számos változót a shell szolgáltat, ami alatt a PHP fut. Mivel más-más rendszerek más-más shell-eket használnak, ezért egy pontos lista összeállítása lehetetlen. A használt shell dokumentációjában nézz utána az előre definiált környezeti változóknak!

Más környezeti változók - beleértve a CGI változókat is - attól függően kerülnek be, hogy a PHP szerver modulként fut vagy CGI feldolgozóként.

PHP változók

Ezeket a PHP maga állítja elő. A $HTTP_*_VARS változók csak akkor állnak rendelkezésre, ha a track_vars be van kapcsolva. Ha engedélyezted ezt a beállítást, ezek a változók mindig létrejönnek, még ha üresek is. Ez nem engedi a rosszindulatú felhasználóknak, hogy meghamasítsák a változókat.

Megjegyzés: A PHP 4.0.3 verziótól kezdve a track_vars mindig be van kapcsolva, függetlenül a konfigurációs fájl beállításától.

Megjegyzés: Az új szuper globális (Superglobals) változók 4.1.0 verziótól használhatók. További részletekért lásd a 4.1.0 verzió bejelentését Ezek a $_GET, $_POST, $_ENV, $_SERVER, $_COOKIE, $_REQUEST $_FILES és a $_SESSION tömbök, amelyek fesztelen megfogalmazásban szuper globális jelzővel illetik, mivel minden esetben használhatók tekintet nélkül az aktuális érvényességi körre. Emiatt a régi, nekik megfelelő $HTTP_*_VARS tömbök használata már nem javasolt.

Ha a register_globals be van kapcsolva, ezek a változók globális változókként is létrejönnek, függetlenül a $HTTP_*_VARS tömböktől. Nézd meg idevonatkozó részletes információkért a biztonságról szóló Globálisan is elérhető változók (Register Globals) használata c. fejezetet!

$argv

A szkriptnek átadott argumentumok tömbje. Ha a szkript parancssor alól futtatjuk, ez egy C-szerű hozzáférést biztosít a parancssor argumentumokhoz. Ha GET metódussal hívjuk, az URL kérdőjel utáni részét (query string) tartalmazza.

$argc

A parancssori argumentumok számát tartalmazza (ha parancssorból futtatjuk).

$PHP_SELF

A most futó szkriptfájl neve, a document root-hoz képest relatív alakban. Ha a PHP parancssorból fut, ez a változó nem elérhető. Ez a változó a kérés útvonal információját is tartalmazza, ha az létezik, azaz a $PHP_SELF a "http://example.com/test.php/foo.bar" címre a következőt fogja adni: "/test.php/foo.bar"

$HTTP_COOKIE_VARS

HTTP cookie-kat (sütiket) tartalmazó asszociatív tömb.

$_COOKIE

HTTP cookie-kat (sütiket) tartalmazó asszociatív tömb, amely minden hatókörben elérhető. PHP 4.1.0-ban került a nyelvbe.

$HTTP_GET_VARS

HTTP GET metódussal által szolgáltatott adatokat tartalmazó asszociatív tömb.

$_GET

HTTP GET metódussal által szolgáltatott adatokat tartalmazó asszociatív tömb, amely minden hatókörben elérhető. PHP 4.1.0-ban került a nyelvbe.

$HTTP_POST_VARS

HTTP POST metódussal által szolgáltatott adatokat tartalmazó asszociatív tömb.

$_POST

HTTP POST metódussal által szolgáltatott adatokat tartalmazó asszociatív tömb, amely minden hatókörben elérhető. PHP 4.1.0-ban került a nyelvbe.

$HTTP_POST_FILES

A HTTP POST metódussal feltöltött fájlokról tartalmaz információkat, asszociatív tömb. Lásd a POST metódusú feltöltések című részt további információkért a $HTTP_POST_FILES tartalmát és szerkezetét illetően. PHP 4.0.0-ban került a nyelvbe.

$_FILES

A HTTP POST metódussal feltöltött fájlokról tartalmaz információkat, asszociatív tömb. Lásd a POST metódusú feltöltések című részt további információkért a $_POST tartalmát és szerkezetét illetően. Minden hatókörben elérhető. PHP 4.1.0-ban került a nyelvbe.

$HTTP_ENV_VARS

A szülő/futtató környezet aktuális változóit tartalmazó asszociatív tömb.

$_ENV

A szülő/futtató környezet aktuális változóit tartalmazó asszociatív tömb, amely minden hatókörben elérhető. PHP 4.1.0-ban került a nyelvbe.

$HTTP_SERVER_VARS

A HTTP szervertől érkező változókkal feltöltött asszociatív tömb. Ezek a változók megfelelnek a fent említett Apache változóknak.

$_SERVER

A HTTP szervertől érkező változókkal feltöltött asszociatív tömb, amely minden hatókörben elérhető. PHP 4.1.0-ban került a nyelvbe.

$HTTP_SESSION_VARS

Az aktuális szkripthez tartozó session változókat tartalmazó asszociatív tömb.

$_SESSION

Az aktuális szkripthez tartozó session változókat tartalmazó asszociatív tömb, amely minden hatókörben elérhető. A _SESSION tömbben új bejegyzések létrehozásával automatikusan regisztrálhatók értékek, mint a session_register() segítségével. PHP 4.1.0-ban került a nyelvbe.

$_REQUEST

A GET, POST és Cookie változókból összeállított asszociatív tömb. Más szóval, bármilyen a felhasználótól ügyféltől érkező adatot tartalmaz, ami biztonsági szempontból nem megbízható. Minden hatókörben elérhető. PHP 4.1.0-ban került a nyelvbe.