Mailinglisten-Archive |
Hi Lars, Lars Brinkmann schrieb: > Hallo Sebastian, > > >>Seine Reihenfolge war doch richtig! Er hat lediglich session_register() >>mit $_SESSION gemischt. >>Und man muss doch ein Objekt nicht erst lokal erstellen um es dann in >>die Session zu kopieren. > > Korrigier mich bitte, wenn ich falsch liege: > > if (!isset($_SESSION['obj'])) { > session_register ('obj'); > // Die Variable 'obj' wird in der Session registriert. Ohne Wert, weil > dazu hätte dieser vorher existieren müssen. Ein $obj existiert aber zu > diesem Zeitpunkt noch gar nicht. > $obj = new test(); > $obj->var = 20; > // Jetzt wird $obj erst initialisiert. Quasi müsste sich an dieser > Stelle die Session-Variable 'obj' automatisch aktualisieren. Ich > wüsste nicht, dass das geht. Aber wie gesagt, korrigier mich bitte. > Ausprobiert habe ich das allerdings selber auch noch nicht. Es klingt > für mich einfach unlogisch. > } Abgesehen davon das ich eigentlich keine Lust habe mich über veraltete Funktionen zu unterhalten, folgendes: session_register() setzt register_globals=on voraus, session_register() kopiert nicht die Variable in die Session sondern 'registriert' sie dort, legt also entweder eine Referenz in der Session zu der Variable ab oder merkt sich einfach das diese Variable am Scriptende in das Session-File gespeichert wird und beim nächsten Session-Start wieder geladen wird. Für mich liest sich das also im Handbuch genau so wie du es für unlogisch hältst - was für mich übrigens nicht unlogisch erscheint, denn die Funktion heißt ja nicht session_copy(). http://www.php.net/session_register Meines Erachtens war sein vorgehen also richtig, bis auf das besagte mischen, und eventuelles fehlen des register_globals=on. Aber das ist ja alles vollkommen irrelevant, er soll halt einfach nur $_SESSION verwenden. -- Sebastian Mendel www.sebastianmendel.de www.sf.net/projects/phpdatetime | www.sf.net/projects/phptimesheet
php::bar PHP Wiki - Listenarchive