phpbar.de logo

Mailinglisten-Archive

[php] von Klassen, Fehlermeldungen und dergleichen

[php] von Klassen, Fehlermeldungen und dergleichen

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Fre Mar 3 11:06:32 CET 2006


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