Variabili PHP Superglobal e Register_Globals
PHP ha un tipo speciale di variabile che si chiama superglobal. Il motivo per cui queste variabili sono speciali è perché sono automaticamente disponibili per qualsiasi programma PHP senza che il programmatore le crei o le definisca nel suo programma. Puoi pensarli come variabili "incorporate".

Il modo in cui accederai a queste variabili varia in base all'attivazione o alla disattivazione di register_globals sul tuo server. Prima di PHP versione 4.2, register_globals era attivato per impostazione predefinita. Tuttavia, per motivi di sicurezza; questa impostazione è ora disattivata per impostazione predefinita (versione 4.2+). Ovviamente spetta alle persone che eseguono il tuo server decidere se sovrascrivere l'impostazione predefinita e attivare register_globals. Il modo più semplice per testare il tuo server è usare phpinfo (). Probabilmente avrai un link a questa pagina web nell'area amministrativa del tuo sito web. In questa pagina web troverai la sezione Configurazione PHP Core che contiene queste informazioni.

Come accennato in precedenza, accederai ai superglobali in modo diverso a seconda delle impostazioni del tuo server. Per la configurazione del nuovo server, ai superglobali sono stati assegnati nuovi nomi. Se il tuo server ha ancora le impostazioni precedenti, sarebbe comunque meglio iniziare a utilizzare i nuovi nomi. Se si utilizzano questi nuovi nomi, si può essere certi che i programmi funzioneranno con entrambe le configurazioni del server. Tuttavia, questo non è il caso dei vecchi nomi. Funzioneranno solo per la vecchia configurazione del server. La tabella seguente mostra i nomi vecchi e nuovi e una descrizione dei superglobali. Si noti che i nomi di questi superglobali sono in maiuscolo.

NuovoVecchioDescrizione
$ _GET $ HTTP_GET_VARS Questo superglobal contiene le variabili inviate al programma con il metodo get come una stringa di indagine.
$ _POST $ HTTP_POST_VARS Questo superglobal contiene le variabili inviate al programma dal metodo post.
$ _COOKIE $ HTTP_COOKIE_VARS Questo superglobal contiene le variabili disponibili per il programma da un cookie.
$ _SESSION $ HTTP_SESSION_VARS Questo superglobal contiene le variabili registrate dal programma tramite una sessione.
$ _FILES $ HTTP_POST_FILES Questo superglobal contiene le variabili disponibili da un caricamento di file.
$ _ENV $ _HTTP_ENV_VARS Questo superglobal contiene le variabili disponibili dall'ambiente server.
$ _REQUEST -- Questo superglobal contiene le variabili inviate a un programma da qualsiasi tipo di input dell'utente. Questo è il tipo più generale o universale di superglobal.
$ _SERVER -- Questo superglobal contiene informazioni sul server come i percorsi dei file.