Newsgroup: it.comp.www.php
Titolo: regiter globals on o off?

Ciao
sul libro che utilizzo io consiglia il parametro off ma non entra nello
specifico, esattamente cosa cambia?
ha a che fare con gli array superglobali $_SERVER, $_SESSION etc?
grazie

 ha a che fare con gli array superglobali $_SERVER, $_SESSION etc?
Appunto, compresi $_GET e $_POST ecc..ecc.., di conseguenza ti cambia 
praticamente tutto il modo di scrivere il codice.
Puoi sempre ripiegare utilizzando $HTTP_GET_VARS, $HTTP_POST_VARS ecc... 
in questo modo stai tranquillo che il tuo codice funzionerà a 
prescindere di com'è ipostato register_global..... c'è solo un 
inconveniente è deprecated, quindi oggic'è domani chissà :-)
Per dettagli:
http://www.php.net/manual/it/language.variables.predefined.php
Ciao
Gianni

inconveniente è deprecated, quindi oggic'è domani chissà :-)
$HTTP_GET_VARS e $_GET sono equivalenti, il primo è solo più vecchio,
e $_GET e $_POST sono definiti anche se register_globals è su OFF...in
definitiva usa $_GET e $_POST.
Francesco Mazzi
Webmaster di AltroPC.it - 
http://www.altropc.it
 
Project Admin di "PHP Reservation - Online booking system" - 
http://phpreservation.sourceforge.net
Dev.Staff di E-Xoopport - 
http://dev.e-xoopport.it

 $HTTP_GET_VARS e $_GET sono equivalenti, il primo è solo più vecchio,
....che facciano la stessa cosa siamo d'accordo, ma che il loro utilizzo 
sia equivalente direi proprio di no: $HTTP_GET_VARS, $HTTP_POST_VARS 
ecc... sono DEPRECATED e funzionano A PRESCINDERE da come hai impostato 
register_global
$_GET e $_POST funzionano SOLO con register_globals è su OFF
La differenza è notevole.
Se nei tuoi progetti usi $HTTP_GET_VARS, $HTTP_POST_VARS ecc... stai 
tranquillo che, allo stato attuale, i tuoi script funzioneranno sempre.
Se utilizzi $_GET e $_POST funzioneranno SOLO se register_global=off.
Ci sono casi in cui uno potrebbe avere gli script su vecchi server e 
magari non ha la possibilità di cambiare register_global neppure con 
.htaccess In quei casi l'uso di $HTTP_GET_VARS, $HTTP_POST_VARS ecc... è 
quasi obbligato perchè garantisce una compatibilità con "il nuovo".
:-)
Ciao
Gianni

La differenza è notevole.
Non mi risulta. Io sviluppo con register_globals su OFF utilizzando
$_POST e $_GET e gli script mi funzionano perfettamente.
Chiariamo questa cosa?


Chiariamo questa cosa?
Scusa ma mi sono espresso male, č evidente che cosě funzioni!
volevo dire...non ho mai avuto problemi di register_globals, ho sempre
sviluppato con gli array $_GET e $_POST con register_globals su OFF e
su ON.
Adesso comunque faccio delle prove.


 Adesso comunque faccio delle prove.
Risolto il "mistero".
Se hai una versione di php < 4.1 devi necessariamente utilizzare la 
nozione $HTTP_* (o il vecchi modo)
Dalla versione 4.1 sono stati introdotti i super globali $_* che, 
facendo effettivamente dei test, funzionano a prescindere, come tu hai 
detto, da register_global (che a quanto sembra, ne imposta solo il campo 
di visibilità).
Ricapitolando....
Se utilizzi $HTTP_* gli script funzionano sempre e comunque dalla 
versione 4.0 alla versione 5 (anche se deprecated, quindi prima o poi 
abbandonati)
Se utilizzi $_* funzionano dalla 4.1 alla 5
Ciao
Gianni

 di visibilità).
Aspetta, retifico, rilegendola non ti da il giusto merito.
Ovviamente tutto ciò che ho detto sopra l'ho detto per chiarire. Ho 
sempre utilizzato $HTTP_* e poi $_* con register_global off e non ho mai 
avuto problemi con nessuna versione di php. La mia convinzione nasceva 
da un errata interpretazione del manuale.
Ciò che ha detto Francesco (che tra le altre cose considero un amico) è 
giusto al 100% :-)
....ecco, così mi piace di più ;-)
Ciao
Gianni

....ecco, così mi piace di più ;-)
In effetti ho letto il manuale e può indurre in errore, non è molto
chiaro. 
Ciao Gianni!


 definitiva usa $_GET e $_POST.
non proprio, nel senso che gli array del tipo $HTTP_ non sono autoglobali
mentre quelli del tipo $_ sì e quindi sono più comodi al livello di sviluppo
poichè visibili ovunque nel programma.
stefano