phpbar.de logo

Mailinglisten-Archive

[php] von Klassen, Fehlermeldungen und dergleichen

[php] von Klassen, Fehlermeldungen und dergleichen

Oliver Michalak omich at werk01.de
Fre Mar 3 11:29:45 CET 2006


Hallo,

>> <?
>> 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.

Boah, es gelingt NICHT! Danke für den Tipp.

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 {
	$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
#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)

Wie legt ihr denn Objekte in einer Session ab? Gar nicht? 8-()

--
Oliver Michalak
GoLive Extensions Actions: http://www.golive-extensions-actions.com




php::bar PHP Wiki   -   Listenarchive