Proměnné proměnné PHP a Register_Globals
PHP má speciální druh proměnné, který se nazývá superglobal. Důvodem, proč jsou tyto proměnné speciální, je to, že jsou automaticky dostupné pro jakýkoli program PHP, aniž by je programátor vytvořil nebo definoval ve svém programu. Můžete si je představit jako „vestavěné“ proměnné.

Způsob přístupu k těmto proměnným se liší v závislosti na tom, zda je na vašem serveru registrer_globals zapnutý nebo vypnutý. Před PHP verze 4.2 byly register_globals ve výchozím nastavení zapnuté. Dělejte však z bezpečnostních důvodů; toto nastavení je nyní ve výchozím nastavení vypnuto (verze 4.2+). Samozřejmě je na lidech, kteří provozují váš server, aby se rozhodli, zda potlačí výchozí nastavení a zapnou registrer_globals. Nejjednodušší způsob, jak otestovat svůj vlastní server, je použít phpinfo (). Pravděpodobně budete mít odkaz na tuto webovou stránku v administrativní oblasti svého webu. Na této webové stránce najdete sekci Configuration PHP Core, která obsahuje tyto informace.

Jak bylo uvedeno výše, přistupujete k superglobálům odlišně v závislosti na nastavení vašeho serveru. Pro nové nastavení serveru dostali superglobály nová jména. Pokud váš server má stále staré nastavení, bylo by lepší začít používat nová jména stejně. Pokud použijete tyto nové názvy, můžete si být jisti, že vaše programy budou fungovat v obou konfiguracích serveru. To však neplatí pro stará jména. Budou fungovat pouze pro konfiguraci starého serveru. Následující tabulka ukazuje staré a nové názvy a popis superglobálů. Všimněte si, že názvy těchto superglobálů jsou psány velkými písmeny.

NovýStarýPopis
$ _GET $ HTTP_GET_VARS Tento superglobal obsahuje proměnné odeslané do programu metodou get, jako je například řetězec guery.
$ _POST $ HTTP_POST_VARS Tento superglobal obsahuje proměnné odeslané do programu metodou post.
$ _COOKIE $ HTTP_COOKIE_VARS Tento superglobal obsahuje proměnné dostupné pro program ze souboru cookie.
$ _SESSION $ HTTP_SESSION_VARS Tento superglobal obsahuje proměnné registrované programem prostřednictvím relace.
$ _FILES $ HTTP_POST_FILES Tento superglobal obsahuje proměnné dostupné z nahrání souboru.
$ _ENV $ _HTTP_ENV_VARS Tento superglobal obsahuje proměnné dostupné z prostředí serveru.
$ _REQUEST -- Tento superglobal obsahuje proměnné odeslané do programu libovolným typem uživatelského vstupu. Toto je nejobecnější nebo nejuniverzálnější typ superglobálu.
$ _SERVER -- Tento superglobal obsahuje informace o serveru, například cesty k souborům.





Video Návody: 4. lekce: Proměnné v PHP - Co jsou to proměnné, kdy a kde se používají (Smět 2024).