Forum und email

Preddefinované premenné

Od PHP 4.1.0 je preferovaná metóda pre získavanie externých premenných so superglobálami spomenutými nižšie. Pred týmto časom sa ľudia spoliehali buď na register_globals alebo dlhé preddefinované PHP polia ($HTTP_*_VARS). Počínajúc PHP 5.0.0, dlhé PHP polia preddefinovaných premenných je možné zakázať s direktívou register_long_arrays.

Premenné servera: $_SERVER

Note: Predstavené v 4.1.0. V skorších verziách používajte $HTTP_SERVER_VARS.

$_SERVER je pole obsahujúce informácie o hlavičkách, cestách a umiestneniach skriptu. Položky v tomto poli vytvára webserver. Nie je žiadna záruka, že každý webserver vude poskytovať niektoré z nich; servery môžu niektoré vynehať alebo poskytovať iné, tu neuvedené. Veľké množstvo týchto premenných je vysvetlených na » CGI 1.1 špecifikácii, takže mali by ste očakávať tie.

Toto je 'superglobálna' alebo automaticky globálna premenná. To jednoducho znamená, že je dostupná vo všetkých oblastiach po celom skripte. Nemusíte použiť global $_SERVER;, aby ste ju sprístupnili vo funkciách a metódach, ako to robíte s $HTTP_SERVER_VARS.

$HTTP_SERVER_VARS obsahuje rovnaké počiatočné informácie, ale nie je autoglobálna. (Všimnite si, že $HTTP_SERVER_VARS a $_SERVER sú odlišné premenné, a tak ich aj PHP spracováva)

Ak je nastavená direktíva register_globals, potom sa tieto premenné tiež sprístupnia v globálnej oblasti skriptu; t.j., oddelí polia $_SERVER a $HTTP_SERVER_VARS. Súvisiace informácie si pozrite v kapitole bezpečnosti pod titulkom Používanie globálov registra. Tieto individuálne globály nie sú autoglobály.

Niektoré z následujúcich elementov môžete, ale nemusíte nájsť v $_SERVER. Niektoré z nich, ak vôbec sú, budú k dispozícii (alebo budú mať nejaký význam), ak PHP beží v príkazovom riadku.

'PHP_SELF'
Názov súboru práve spracovávaného skriptu, vztažný na koreň dokumentu. Na príklad, $_SERVER['PHP_SELF'] v skripte na adrese https://example.com/test.php/foo.bar by bol /test.php/foo.bar. Ak PHP beží ako procesor príkazového riadku, táto premenná nie je dostupná.
'argv'
Pole argumentov predané skriptu. Keď je skript spustený v príkazovom riadku, toto dáva C-štýlom prístup k parametrom príkazového riadka. Keď sa volá cez metódu GET, bude obsahovať reťazec dotazu.
'argc'
Obsahuje počet parametrov príkazového riadka predaných skriptu (ak beží v príkazovom riadku).
'GATEWAY_INTERFACE'
akú revíziu CGI špecifikácie server používa; t.j. 'CGI/1.1'.
'SERVER_NAME'
Názov hostu servera, pod ktorým sa aktuálny skript spracováva. Ak skript beží na virtuálnom hoste, toto bude hodnota definovaná pre virtuálny host.
'SERVER_SOFTWARE'
Identifikačný reťazec servera, udaný v hlavičkách, keď odpovedá na požiadavky.
'SERVER_PROTOCOL'
Názov a revízia informačného protokolu, cez ktorý sa stránka požadovala; t.j. 'HTTP/1.0';
'REQUEST_METHOD'
Ktorá metóda požiadavky sa použila na prístu ku stránke; t.j. 'GET', 'HEAD', 'POST', 'PUT'.
'QUERY_STRING'
Reťazec dotazu, ak je, cez ktorý sa stránka sprístupnila.
'DOCUMENT_ROOT'
Koreňový adresár dokumentu, pod ktorým sa skript spracováva, ako je definované v konfiguračnom súbore servera.
'HTTP_ACCEPT'
Obsah hlavičky Accept: z aktuálnej požiadavky, ak nejaká je.
'HTTP_ACCEPT_CHARSET'
Obsah hlavičky Accept-Charset: z aktuálnej požiadavky, ak nejaká je. Príklad: 'iso-8859-1,*,utf-8'.
'HTTP_ACCEPT_ENCODING'
Obsah hlavičky Accept-Encoding: z aktuálnej požiadavky, ak nejaká je. Príklad: 'gzip'.
'HTTP_ACCEPT_LANGUAGE'
Obsah hlavičky Accept-Language: z aktuálnej požiadavky, ak nejaká je. Príklad: 'en'.
'HTTP_CONNECTION'
Obsah hlavičky Connection: z aktuálnej požiadavky, ak nejaká je. Príklad: 'Keep-Alive'.
'HTTP_HOST'
Obsah hlavičky Host: z aktuálnej požiadavky, ak nejaká je.
'HTTP_REFERER'
Adresa stránky (ak je), ktorá odkazovala užívateľského agenta na aktuálnu stránku. Toto nastaví užívateľský agent. Nie všetky užívateľské agenty toto nastavia a niektoré poskytujú možnosť modifikovať HTTP_REFERER ako vlastnosť. V skratke, nedá sa tomu naozaj veriť.
'HTTP_USER_AGENT'
Obsah hlavičky User-Agent: z aktuálnej požiadavky, ak nejaká je. Je to reťazec zaznamenavajúci existenciu užívateľského agenta, ktorý sprístupňuje stránku. Typický príklad je: Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Medzi iným, túto hodnotu môžete použiť s get_browser() k prispôsobeniu výstupu vašej stránky schopnostiam užívateľského agenta.
'REMOTE_ADDR'
IP adresa, z ktorej si užívateľ prezerá aktuálnu stránku.
'REMOTE_HOST'
Názov Hostu, z ktorého si užívateľ prezerá aktuálnu stránku. Opačný dns pohľad je založený na REMOTE_ADDR užívateľa.

Note: Vás web server musí byť nakonfigurovaný tak, aby túto premennú vytvoril. Napr. v Apache musíte mať HostnameLookups On v httpd.conf, aby mohol existovať. Tiež pozri gethostbyaddr().

'REMOTE_PORT'
Port používaný na komunikáciu s web serverom na počítači užívateľa.
'SCRIPT_FILENAME'

Absolutná cesta k práve spracovávaného skriptu.

Note: Ak je skript spustený s CLI, ako relatívna cesta, ake je file.php alebo ../file.php, $_SERVER['SCRIPT_FILENAME'] bude obsahovať relatívnu cestu určenú užívateľom.

'SERVER_ADMIN'
Hodnota daná SERVER_ADMIN (pre Apache) direktívu v konfiguračnom súbore web servera. Ak skript beží na virtuálnom hoste, bude to hodnota definovaná pre tento virtuálny host.
'SERVER_PORT'
Port na počítači servera používaný web serverom na komunikáciu. Pre default nastavenie to bude '80'; použitie SSL, na príklad, to zmení na čokoľvek, čo váš definovaný bezpečný HTTP port je.
'SERVER_SIGNATURE'
Reťazec obsahujúci verziu servera a názov virtuálneho hostu, ktoré sa pridajú na na serverom-generované stránky, ak je to aktivované.
'PATH_TRANSLATED'
Cesta súborového systému (nie koreňového dokumentu) k aktuálnemu skriptu, po tom, čo server urobil nejaké virtual-to-real mapovanie.
'SCRIPT_NAME'
Obsahuje cestu k aktuálnemu skriptu. Je to užitočné pre stránky, ktoré musia ukazovať samé na seba.
'REQUEST_URI'
URI, ktorá bola daná, aby bol k tejto stránke prístup; na príklad '/index.html'.
'PHP_AUTH_USER'
Keď bežíte pod Apache ako modulom vykonávajúcim HTTP autentifikácie, táto premenná je nastavená na meno poskytnuté užívateľom.
'PHP_AUTH_PW'
Keď bežíte pod Apache ako modulom vykonávajúcim HTTP autentifikácie, táto premenná je nastavená na heslo poskytnuté užívateľom.
'AUTH_TYPE'
Keď bežíte pod Apache ako modulom vykonávajúcim HTTP autentifiácie, táto premenná je nastavená na typ autentifikácie.

Enviromentálne premenné: $_ENV

Note: Predstavené v 4.1.0. V skorších verziách používajte $HTTP_ENV_VARS.

Tieto premenné su importované do globálnej oblasti mien PHP z prostredia, pod ktorým beží PHP parser. Mnoho je poskytovaných shellom, pod ktorým beží PHP a na rôznych systémoch zaiste bežia rôzne druhy shellov, definitívy zoznam nie je možný. Prosím, pozrite si dokumentáciu k vášmu shellu o zozname definovaných enviromentálnych premenných.

Iné enviromentálne premenné zahŕňajú premenné CGI, ktoré sú tam umiestnené bez ohľadu na to, či PHP beží ako server modul alebo CGI procesor.

Toto je 'superglobálna', alebo automatická globálna, premenná. To jednoducho znamená, že je dostupná vo všetkých oblastiach po celom skripte. Nemusíte použiť globálu $_ENV;, aby ste ju sprístupnili vo funkciách a metódach, ako to robíte s $HTTP_ENV_VARS.

$HTTP_ENV_VARS obsahuje rovnaké počiatočné informácie, ale nie autoglobálna. (Všimnite si, že $HTTP_ENV_VARS a $_ENV sú rôzne premenné, a tak ich aj PHP spracováva)

Ak je nastavená direktíva register_globals, potom sa tieto premenné tiež sprístupnia v globálnej oblasti skriptu; t.j., oddelí polia $_ENV a $HTTP_ENV_VARS. Súvisiace informácie s pozrite v kapitole bezpečnosti pod titulkom Používanie globálov registra. Tieto individuálne globály nie sú autoglobály.

HTTP Cookies: $_COOKIE

Note: Predstavené v 4.1.0. V skorších verziách používajte $HTTP_COOKIE_VARS.

Asociatívne pole premenných predaných aktuálnemu skriptu cez HTTP cookies. Automaticky globálna v akejkoľvek oblasti.

Toto je 'superglobálna', alebo automaticky globálna, premenná. To jednoducho znamená, že je dostupná vo všetkých oblastiach po celom skripte. Nemusíte použiť globalu $_COOKIE;, aby ste ju sprístupnili vo funkciách a metódach, ako to robíte s $HTTP_COOKIE_VARS.

$HTTP_COOKIE_VARS obsahuje rovnaké počiatočné informácie, ale nie je autoglobálna. (Všimnite si, že $HTTP_COOKIE_VARS a $_COOKIE sú rôzne premenné, a tak ich aj PHP spracováva)

Ak je nastavená direktíva register_globals, potom tieto premenné sa tiež sprístupnia v globálnej oblasti skriptu; t.j. oddelí polia $_COOKIE and $HTTP_COOKIE_VARS. Súvisiace informácie si pozrite v kapitole bezpečnosti pod titulkom Používanie globálov registra. Tieto individuálne globály nie sú autoglobály.

Premenné HTTP GET: $_GET

Note: Predstavené v 4.1.0. V skorších verziách používajte $HTTP_GET_VARS.

Asociatívne pole premenných predaných aktuálnemu skriptu cez metódu HTTP GET. Automaticky globálna v akejkoľvek oblasti.

Toto je 'superglobálna', alebo automaticky globálna, premenná. To jednoducho znamená, že je dostupná vo všetkých oblastiach po celom skripte. Nemusíte použiť globálu $_GET;, aby ste ju sprístupnili vo funkciách a metódach, ako to robíte s $HTTP_GET_VARS.

$HTTP_GET_VARS obsahuje rovnaké počiatočné informácie, ale nie je autoglobálna. (Všimnite si, že $HTTP_GET_VARS a $_GET sú rôzne premenné, a tak ich aj PHP spracováva)

Ak je nastavená direktíva register_globals, potom sa tieto premenné tiež sprístupnia v globálnej oblasti skriptu; t.j., oddelí polia $_GET a $HTTP_GET_VARS. Súvisiace informácie si pozrite v kapitole bezpečnosti pod titulkom Používanie globálov registra. Tieto individuálne globály nie sú autoglobály.

Premenné HTTP POST: $_POST

Note: Predstavené v 4.1.0. V skorších verziách používajte $HTTP_POST_VARS.

Asociatívne pole premenných predaných aktuálnemu skriptu cez metódu HTTP POST. Automaticky globálna v akejkoľvek oblasti.

Toto je 'superglobála', alebo automaticky globálna, premenná. To jednoducho znamená, že je dostupná vo všetkých oblastich po celom skripte. Nemusíte použiť globálu $_POST;, aby ste ju sprístupnili vo funkciách a metódach, ako to robíte s $HTTP_POST_VARS.

$HTTP_POST_VARS obsahuje rovnaké počiatočné informácie, ale nie je autoglobálna. (Všimnite si, že $HTTP_POST_VARS a $_POST sú rôzne premenné, a tak ich aj PHP spracováva)

ak je nastavená direktíva register_globals, potom sa tieto premenné tiež spístupnia v globálnej oblsti skriptu; t.j., oddelí polia $_POST a $HTTP_POST_VARS. Súvisiace informácie si pozrite v kapitole bezpečnosti pod titulkom Používanie globálov registra. Tieto individuálne globály nie sú autoglobály.

Premenné HTTP File upload: $_FILES

Note: Predstavené v 4.1.0. V skorších verziách používajte $HTTP_POST_FILES.

Asociatívne pole prvkov uploadovaných aktuálnemu skriptu cez metódu HTTP POST. Automaticky globálna v akejkoľvek oblasti.

toto je 'superglobálna', alebo automaticky globálna, premenná. To jednoducho znamená, žee je dostupná vo všetkých oblastiach po celom skripte. Nemusíte použiť globálu $_FILES;, aby ste ju sprístupnili vo funkciách a metódach, ako to robíte s $HTTP_POST_FILES.

$HTTP_POST_FILES obsahuje rovnaké informácie, ale nie je autoglobálna. (Uvedomte si, že $HTTP_POST_FILES a $_FILES sú odlišné premenné a že PHP sa tak aj k nim chová)

Ak je nastavené direktíva register_globals, potom sa tieto premenné tiež sprístupnia v globálnej obasti skriptu; t.j., oddelí polia $_FILES a $HTTP_POST_FILES. Súvisiace informácie si pozrite v kapitole bezpečnosti pod titulkom Používanie globálov registra. Tieto individuálne globály nie sú autoglobály.

Premenné požiadavky: $_REQUEST

Note: Predstavené v 4.1.0. V skorších verziách nie je žiadne ekvivalentné pole.

Note: V PHP 4.3.0, $_FILES bola tiež zahrnutá do $_REQUEST.

Asociatívne pole pozostávajúce z obsahu $_GET, $_POST a $_COOKIE.

Toto je 'superglobálna', alebo automaticky globálna, premenná. To jednoducho znamená, že je dostupná vo všetkých oblastiach po celom skripte. Nemusíte použiť globálu $_REQUEST;, aby ste ju sprístupnili vo funkciách a metódach.

Ak je nastavená direktíva register_globals, potom sa tieto premenné tiež sprístupnia v globálnej oblasti skriptu; t.j., oddelí pole $_REQUEST. Súvisiace informácie si pozrite v kapitole bezpečnosti pod titulkom Používanie globálov registra . Tieto individuálne globály nie sú autoglobály.

Relačné premenné: $_SESSION

Note: Predstavené v 4.1.0. V skorších verziách používajte $HTTP_SESSION_VARS.

Asociatívne pole obsahujúce premenné dostupné aktuálnemu skriptu. Pozrite si dokumentáciu Relačné funkcie pre informácie, ako sa používa.

Toto je 'superglobílna', alebo automaticky globálna, premenná. To jednoducho znamená, že je dostupná vo všetkých oblastich po celom skripte. Nemusíte použiť globálu $_SESSION;, aby ste ju sprístnili vo funkicichá a metódach, ako to robíte s $HTTP_SESSION_VARS.

$HTTP_SESSION_VARS obsahuje rovnaké informácie, ale nie je autoglobálna. (Uvedomte si, že $HTTP_SESSION_VARS a $_SESSION sú odlišné premenné a že sa PHP aj tak k nim chová)

Ak je nastavená direktíva register_globals, potom sa tieto premenné tiež sprístupnia v globálnej oblasti skriptu; t.j., oddelí polia $_SESSION a $HTTP_SESSION_VARS. Súvisiace informácie si pozrite v kapitole bezpečnosti pod titulkom Používanie globálov registra. Tieto individuálne globály nie sú autoglobály.

Globálne premenné: $GLOBALS

Note: $GLOBALS je dostupná od PHP 3.0.0.

Asociatívne pole obsahujúce relačné odkazy na všetky premenné, ktoré sú aktuálne definované v globálnej oblasti skriptu. Názvy premenných sú kľúče poľa.

Toto je 'superglobálna', alebo automaticky globálna, premenná. To jednoducho znamená, že je dostupná vo všetkých oblastiach po celom skripte. Nemusíte použiť globálu $GLOBALS;, aby ste ju sprístupnili vo funkciách a metodach.

Predošlá chybová správa: $php_errormsg

$php_errormsg je premenná obsahujúca text poslednej chybovej správy vygenerovanej PHP-čkom. Táto premenná bude dostupná iba v oblasti, v ktorej sa chyba vyskytla a iba ak je zapnutá konfiguračná voľba track_errors (defaultne je vypnutá).