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