Mailinglisten-Archive |
Hallo Oliver, Oliver Michalak schrieb: > Daraufhin habe ich mal die Klasse nicht per include eingebunden > sondern direkt in den code eingesetzt, die Fragmente sehen nun wie > folgt aus: > > <? > class bom_tree { > //... > } > > class bom_tree_admin extends bom_tree { > // .. > } > > session_start(); > ?> > <html> > <? > if (!isset($_SESSION['tree'])) { > $tree = new bom_tree_admin (); > $_SESSION['tree'] = &$tree; > } > else { und jetzt läßt sich hier, im Gegensatz zu vorher, ein ein neues Objekt der Klasse bom_tree_admin() erzeugen? > $tree = new bom_tree_admin (); > $tree = &$_SESSION['tree']; > } > $tree->init(); > //... > ?> > > Immernoch der gleiche Fehler! > >> Ich habe da einen Verdacht, der Dir allerdings nicht gefallen wird. Da >> Objekte in Sessions ja ein Thema für sich sind, habe ich mal in das >> Handbuch geguckt: >> >> http://www.php.net/manual/de/language.oop.serialization.php >> >> Und dort habe ich auch mal die "User Contributed Notes" gelesen. Es >> gibt >> da in PHP4 - in PHP5 scheint es (eventuell) gelöst zu sein - wohl ein >> Problem mit Referenzen. Wenn ein Objekt in die Session gelegt wird und >> serialisiert wird, scheinen die Referenzen bei der Serialisierung >> verloren >> zu gehen. >> >> Die paar Zeilen Code, die Du oben mitgegeben hast, deuten darauf >> hin, daß >> Du Referenzen verwendest. Guck mal, ob es daran liegt. > > #1 selbst ohne & (also Referenzen) klappt es nicht Es bezieht sich auch auf Referenzen in dem Objekt. Verwendest Du da mit Sicherheit keine? > #2 schalte ich register_globals=on (und greife anders auf die > Sessionvars zu) geht es (das war ja der Auslöser, sonst > funktionierten die Scripte gut, nur durch register_globals=off nicht > mehr) Hm. Dazu habe ich nur folgende Aussage in der Doku gefunden: "Die Konfigurationseinstellungen von track_vars und register_globals beeinflussen, wie die Session-Variablen gespeichert und wiederhergestellt werden." Es gibt da also offensichtlich einen Unterschied. Die Frage ist, wo der liegt. Dazu habe ich bisher noch nichts gefunden. > Wie legt ihr denn Objekte in einer Session ab? Gar nicht? 8-() Ich bin bisher noch nicht in die Verlegenheit gekommen. :-) Viele Grüße Lutz
php::bar PHP Wiki - Listenarchive