Premenné premenných v PHP a Register_Globals
PHP má špeciálny druh premennej, ktorá sa nazýva superglobálna. Dôvod, prečo sú tieto premenné zvláštne, je ten, že sú automaticky dostupné pre akýkoľvek program PHP bez toho, aby ich programátor vytvoril alebo definoval vo svojom programe. Môžete ich považovať za „vstavané“ premenné.

Spôsob prístupu k týmto premenným sa líši v závislosti od toho, či je na vašom serveri zapnutá alebo vypnutá register_globals. Pred PHP verzie 4.2 boli register_globals predvolene zapnuté. Robia to však z bezpečnostných dôvodov; toto nastavenie je teraz predvolene vypnuté (verzia 4.2+). Samozrejme je na ľuďoch, ktorí prevádzkujú váš server, aby sa rozhodli, či prepíšu predvolené nastavenie a zapnú register_globals. Najjednoduchší spôsob testovania vlastného servera je použitie phpinfo (). Pravdepodobne budete mať odkaz na túto webovú stránku v administratívnej oblasti svojho webu. Na tejto webovej stránke nájdete sekciu Configuration PHP Core, ktorá obsahuje tieto informácie.

Ako je uvedené vyššie, budete pristupovať k superglobálom odlišne v závislosti od nastavenia vášho servera. Pre nové nastavenie servera dostali superglobals nové názvy. Ak má váš server stále staré nastavenie, bolo by lepšie začať používať nové názvy. Ak použijete tieto nové názvy, môžete si byť istí, že vaše programy budú fungovať v oboch konfiguráciách servera. To však neplatí pre staré mená. Budú fungovať iba pre starú konfiguráciu servera. Nasledujúca tabuľka zobrazuje staré a nové mená a popis superglobálov. Všimnite si, že názvy týchto superglobálov sú písané veľkými písmenami.

Novýstarýpopis
$ _GET $ HTTP_GET_VARS Tento superglobal obsahuje premenné odoslané do programu metódou get, ako je napríklad guery string.
$ _POST $ HTTP_POST_VARS Tento superglobal obsahuje premenné odoslané do programu metódou post.
$ _COOKIE $ HTTP_COOKIE_VARS Tento superglobal obsahuje premenné dostupné pre program zo súboru cookie.
$ _SESSION $ HTTP_SESSION_VARS Tento superglobal obsahuje premenné zaregistrované programom prostredníctvom relácie.
$ _files $ HTTP_POST_FILES Tento superglobal obsahuje premenné dostupné z odovzdania súboru.
$ _ENV $ _HTTP_ENV_VARS Tento superglobal obsahuje premenné dostupné z prostredia servera.
$ _REQUEST -- Tento superglobal obsahuje premenné poslané do programu akýmkoľvek typom užívateľského vstupu. Toto je najbežnejší alebo univerzálny typ superglobálu.
$ _SERVER -- Tento superglobal obsahuje informácie o serveri, ako sú napríklad cesty k súborom.