Nelle versioni di php dopo la 4.1.0 sono state inserite nuove variabili che andranno a sostituire i vecchi array.
le nuove sono:

codice:
$_SERVER al posto di $HTTP_SERVER_VARS
$_GET al posto di $HTTP_GET_VARS
$_POST al posto di $HTTP_POST_VARS
$_COOKIE al posto di $HTTP_COOKIE_VARS
$_FILES al posto di $HTTP_POST_FILES
$_ENV al posto di $HTTP_ENV_VARS
$_REQUEST (non ha equivalenti nelle vecchie versioni)
$_SESSION[] per $HTTP_SESSION_VARS[]
il funzionamento è molto simile ai vecchi array, quindi se in uno script fate riferimento alle variabili in input con gli appositi array non dovrete far altro che cambiare i nomi.
Decisamente diverso invece se per riferirvi alle variabili in input usavate il nome della variabile e non il suo array (es. $var invece di $HTTP_GET_VARS[var]). Questo perchè nelle versioni dalla 4.2.0 in poi per default il php.ini contiente questa riga
codice:
register_globals = 'Off'
mentre in quelle precedenti la riga era scritta per default così
codice:
register_globals = 'On'
E' consigliabile mantenere la riga su Off, ma è sempre possibile impostarla su On (anche se ciò è deprecato)

Un'altra novità che può tornare utile è il fatto che queste variabili sono automaticamente globali:
se in una funzione inserivate
Codice PHP:
global $HTTP_GET_VARS
per rendere le variabili get visibili, ora tutto ciò non sarà necessario.

Un ultimo consiglio...
in questo momento di transizione è consigliabile scrivere gli script riferendosi alle variabili con i nuovi array ed inserire in cima allo script righe di questo tipo:
Codice PHP:
if(!isset($_GET)) $_GET $HTTP_GET_VARS
(ovviamente una per ogni array usato )

Spero di non essermi dilungato troppo..

chris

Importante
per mantenere la compatibilità php 4.0.x con tutte le versioni successive (php 4.1.x e php 4.2.x) avevo consigliato di aggiungere in cima allo script una riga del genere:
if(!isset($_GET)) $_GET = $HTTP_GET_VARS;

ho letto invece su una mailing list che in effetti qualche utente malizioso potrebbe richiamare la pagina con pagina.php?_GET['var']=53
e $_GET sarebbe settato.

la soluzione proposta è questa:
if(!isset($_SERVER) OR !$_SERVER OR !is_array($_SERVER) OR count(array_diff($_SERVER, $HTTP_SERVER_VARS))){
$_GET = &$HTTP_GET_VARS;
$_POST = &$HTTP_POST_VARS;
$_SERVER = &$HTTP_SERVER_VARS;
$_ENV = &$HTTP_ENV_VARS;
$_COOKIE = &$HTTP_COOKIE_VARS;
$_FILES = &$HTTP_POST_FILES;
$_SESSION = &$HTTP_SESSION_VARS;
}