Mailinglisten-Archive |
Hallo Oliver, Oliver Michalak schrieb: > PHP4 (mit register_globals=off) meldet bei einer sich selbst > aufrufenden Seite, dass (beim zweiten Aufruf der Seite) die > Klassendefinition in *** unbekannt sei und die vor dem Start der > Session geladen sein muss. Dies ist aber der Fall insofern vermute > ich den Fehler woanders, vielleicht könnt ihr mir helfen. Der > Grundaufbau sieht so aus: > > <? > include_once ("bom_tree_admin.php"); // enthält die Klassendefinition > include_once ($_SERVER['DOCUMENT_ROOT']."/bom_session.php"); // > startet im wesentlichen die Session > ?> > <html> > <... blablabla...> > <? > if (!isset($_SESSION['tree'])) { > $tree = new bom_tree_admin (); > $_SESSION['tree'] = &$tree; > } > else versuche doch hier mal, ein neues Objekt der Klasse bom_tree_admin zu erzeugen. Wenn das gelingt, hast Du die Klasse auf der zweiten Seite definitiv erfolgreich eingebunden. > $tree = &$_SESSION['tree']; > $tree->init(); // *** > //... > ?> > > include/require bewirken alle den gleichen 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. Viele Grüße Lutz
php::bar PHP Wiki - Listenarchive