Hello,
Zitat:
"Beim Session-Start werden automatisch die Session-Variablen in die beiden Arrays geladen. Die haben ab dann nichts mehr miteinander zu tun. Deshalb sollte man gleich nach session_start() ein unset($HTTP_SESSION_VARS) absetzen, ...."Soweit so gut, jetzt kommts:
"... allerdings aus dem Namensraum, in dem session_start() ausgeführt wurde."Was heißt hier Namensraum, bzw. wo soll man das unset durchführen?
Habe ich wohl doch noch kein Alzheimer. Erkenne ich doch mein Posting wieder. Dann lag der Gedächtnisverlust wohl doch am Schwächeanfall.
Das Problem könnte bei PHP >= 4.1.x gelöst sein, muss aber nicht. :-(
$_SESSION ist "superglobal"
$HTTP_SESSION_VARS ist nur "global"
Wenn man nun session_start() aus einer Funktion heraus aufruft, dann wird das $HTTP_SESSION_VARS-Array im Namensraum der Funktion angelegt, während $_SESSION bereits im Namensraum des gesamten Scriptes angelegt wird. Will man also bei PHP-Versionen < 5.x die Rendundanzen der Global-Arrays beseitigen, so muss man im selblen Namensraum, in dem man das Laden veranlasst hat auch das Löschen der alten $HTTP_*_VARS wieder durchführen. Soweit ich das jetzt überblicke, betrifft das aber nur $HTTP_SESSION_VARS, da alle anderesn Arrays bereits mit dem Scriptstart geliefert werden.
Liebe Grüße aus http://www.braunschweig.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen