Newsgroup: it.comp.www.php
Titolo: compatibilità con PHP versioni precedenti

Mi basta includere le righe sotto per ogni pagina php creata?
<?php 
// PHP4 < 4.1 Compatibility 
if (!function_exists('version_compare')) { 
    function version_compare ($a, $b, $c) { 
        return (TRUE); 
    } 
} 
if (version_compare(phpversion(), "4.1.0", "<")) { 
    $_SERVER = $HTTP_SERVER_VARS; 
    $_REQUEST = array_merge ($HTTP_GET_VARS, $HTTP_POST_VARS,
$HTTP_COOKIE_VARS); 
    $_GET = $HTTP_GET_VARS; 
    $_POST = $HTTP_POST_VARS; 
    $_COOKIE = $HTTP_COOKIE_VARS; 
    $_FILES = $HTTP_POST_FILES; 
    $_SESSION = $HTTP_SESSION_VARS; 
    $_ENV = $HTTP_ENV_VARS; 
} // End PHP4 < 4.1 Compatibility 
?> 
leggo inoltre:"Your example solves a LOT of problems, but not all :)"
per cosa non funziona?
Grazie

 leggo inoltre:"Your example solves a LOT of problems, but not all :)"
infatti risponde precisamente alla tua domanda... non ti basta :)
questo è un articolo che ho scritto tempo fa, forse puo' esserti di aiuto:
http://www.holosoft.it/docu/phpretro2.php
non è recentissimo ma almeno chiarisce un po' di cosette :)
bye T.
--
"Imagination is more important than knowledge" - A.Einstein
[ IRLug Founder - 
www.irlug.org
 ]  [ HoloSoft Owner: 
www.holosoft.it
]
[ WebStatis PR - 
www.webstatis.com
 ]
[ ZioBudda Admin - 
www.ziobudda.net
 ] [ IWA Member #0240561 ]

non è recentissimo ma almeno chiarisce un po' di cosette :)
grazie ancora.
quelle cosette le avevo chiare anche se non le avevo lette tutte in
unico articolo (come il tuo). Rimane la domanda che ora è: il problema
è solo che le variabili non sono superglobal? O vi si aggiunge il
problema da te accennato ma non specificato delle sessioni? che si
intende per 'comportamento anomalo'? Non funzionano vuoi dire(?).

 intende per 'comportamento anomalo'? Non funzionano vuoi dire(?).
nel nuovo sistema le funzioni vengono registrate attravero l'uso
diretto dell'array superglobal $_SESSION e non più attraverso la funzione
session_register() che veniva usata prima... anche se si può comunque
utilizzare...
ma, se te fai:
$_SESSION = $HTTP_SESSION_VARS
e quindi usi il nuovo sistema con l'assegnazione diretta in $_SESSION delle
var di sessione.. non ti funzionerà mai se il tuo sistema è vecchio....
perché
hai bisogno di session_register...
inoltre se fai il contrario.... presumento che stai su un vecchio sistema..
sei obbligato ad utilizzare session_register() ma se sposti lo script su un
nuovo sistema (o il tuo hosting provider gli girano ed aggiorna versione) il
tuo
script non funzia più bene....
in svariate prove che ho fatto.... l'uso di session_register() col nuovo
sistema
(quello di $_SESSION) crea dei problemi... semplicemente a volte le
variabili
non vengono registrate.. ed in alcuni tragici casi (c'ho perso giornate
intere)
ti cancella completamente tutto il contenuto del file di sessione :(
stesso discorso ti accade se in una funzione te fai:
function provola($str)
{
    global $_SESSION;
    ....
    ...
}
questo per riuscire a vedere l'array delle sessioni... (presumendo
che sei i un vecchio sistema).. ma appena passi nel nuovo sistema
questa operazione ti cancella automaticamente tutto... (il contenuto
della session)
comunque si dovrebbe cercare di lavorare con versioni di PHP
che siano successive alla 4.1.0 dal momento che il supporto per le
versioni precedenti è abbandonato da parte del team della zend ...
per via della presenza di bachi grandissimi.. e ormai che non hanno
alcuna voglia/intenzione di risolvere...
inoltre il comportamento anomalo di cui sopra è stato segnalato
a zend (
bugs.php.net
) molto tempo fa... quando appunto alcuni
di noi ci sbattevano la testa (nella ml php-it) e la zend ha risposto
che si stava usando il linguaggio (php) in maniera impropria..e quindi
in pratica la risposta era "...stra***azzi vostri" ... :)
questo è tutto.. spero che sia stato esauriente :)
(magari lo metto come corollario all'articolo :) )


(magari lo metto come corollario all'articolo :) )
io ti posso dire di rovesciare l'articolo, metti in testa, "usare
versioni di PHP successive alla 4.1.0" e poi "se non ci credete
sorbitevi sta pappardella per poi vedervi comunque costretti a fare
come sopra". E giù tutto l'articolo e il corollario perchè no. :D
Arrigraziemille!