Előre definiált változók

A PHP egy csomó előre definiált változót biztosít az összes futó szkriptnek. Sok ilyen változót nem lehet rendesen dokumentálni, mert függnek a szervertől, amelyen futnak, függnek a verziótól és 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.

Ezen tényezők ellenére itt egy lista az előre definiált változókról, amit egy 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ót kilistázhatod, és sok más hasznos információt megtudhatsz a phpinfo() használatával.

Megjegyzés: Ez a lista nem teljes, nem is ez a célja. Ez egyszerűen csak egy útmutató, amiben benne van, hogy milyen típusú előre definiált változókat érhetsz el.

Apache változók

Ezek a változók az Apache webszerver változói. Ha másik szervert futtatsz, nincs rá garancia, hogy ugyanazokat a változókat elérheted; néhányuk hiányozhat, vagy esetleg itt nem szereplőket biztosíthat a szerver számodra. Számos változó dokumentált a for in the CGI 1.1 specifikációban, azokra bizton számíthatsz.

Vedd figyelembe, hogy ha a PHP-t parancssorból (command line) indítod, ezen változók töredékének lehet csak értelme, ha egyáltalán léteznek.

$GATEWAY_INTERFACE

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

$SERVER_NAME

A server (host) neve, ami alatt a szkript fut. Ha a szkript virtuális hoston fut, a virtuális host neve.

$SERVER_SOFTWARE

Server azonosító string, ami a kérések válaszának fejlécében szerepel.

$SERVER_PROTOCOL

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

$REQUEST_METHOD

Melyik kérési formát használt, aki az oldalt lekérte pl. 'GET', 'HEAD', 'POST', 'PUT'.

$QUERY_STRING

Az oldalt meghívó URL-ben a kérdőjel után szereplő rész, ha létezik.

$DOCUMENT_ROOT

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

$HTTP_ACCEPT

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

$HTTP_ACCEPT_CHARSET

Az Accept-Charset: HTTP fejléc tartalma, ha éppen van ilyen. pl. 'iso-8859-1,*,utf-8'.

$HTTP_ENCODING

Az Accept-Encoding: HTTP fejléc értéke, ha éppen van ilyen. pl. 'gzip'.

$HTTP_ACCEPT_LANGUAGE

Az Accept-Language: HTTP fejléc értéke, ha éppen van ilyen. pl. 'en'.

$HTTP_CONNECTION

A Connection: HTTP fejléc értéke, ha éppen van ilyen. pl. 'Keep-Alive'.

$HTTP_HOST

A Host: HTTP fejléc értéke, 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ője állítja be, de nem minden böngésző teszi ezt meg, és nem mindig.

$HTTP_USER_AGENT

A User_Agent: HTTP fejléc értéke, ha éppen van ilyen. Ez egy string, ami 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 dolog mellett használhatod ezt az értéket a get_browser() fügvénnyel arra, hogy az aktuális böngésző képességeire szabd 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 szerver 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 webszerver gépen a szerver kommunikációjához használt port száma. Alapbeállításban ez '80', de például SSL-t használva ez a biztonságos HTTP portnak a száma lesz.

$SERVER_SIGNATURE

Egy string, ami a szerver verzióját és a virtuális host-ot tartalmazza, 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 meghívási utat is.

$PATH_TRANSLATED

A szkript fájlrendszernek megfelelő (nem a document root-hoz viszonyított!) elérési útja. Ezt a szerver a virtuális->valós átalakítással határozza meg.

$SCRIPT_NAME

Az aktuális szkript elérési útja (ahogy az az URL-ekben megjelenik!). Hasznos a saját magukra mutató oldalakhoz [pl. form-ok esetén].

$REQUEST_URI

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

Környezeti változók

Ezek a változók a PHP globális változói közé kerülnek abból a környezetből, ahol a PHP feldolgozó fut. Számos változót a shell szolgáltat, ami alatt a PHP fut, és mivel más-más rendszerek más-más shell-eket használnak, egy konkrét lista összeállítása lehetetlen. Légy szíves nézz utána az előre definiált környezeti változóknak a shell-ed dokumentációjában.

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.

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. Ezt a szolgáltatást óvatosan használd, ha lehet, kapcsold ki. A $HTTP_*_VARS változók biztonságosak, míg a globális változók felülírhatják egymást a felhasználó által beadott adatokkal. Ha nem tudod kikapcsolni a register_globals beállítást, meg kell győződnöd arról, hogy a bejövő adatok tényelegesen a megfelelő forrásból érkeznek-e.

$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ő.

$HTTP_COOKIE_VARS

Egy asszociatív tömb, ami a HTTP cookie-kat (sütiket) tartalmazza.

$HTTP_GET_VARS

Egy asszociatív tömb, ami a HTTP GET metódussal kapott adatokat tartalmazza.

$HTTP_POST_VARS

Egy asszociatív tömb, ami a HTTP POST metódussal kapott adatokat tartalmazza.

$HTTP_POST_FILES

Egy associatív tömb, ami a HTTP POST metódussal feltöltött fájlokról tartalmaz információkat. 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 illetően.

A $HTTP_POST_FILES a PHP 4.0.0 és későbbi verzióiban érhető el.

$HTTP_ENV_VARS

Egy asszociatív tömb, ami a szülő környezet aktuális változóit tartalmazza.

$HTTP_SERVER_VARS

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