Mailinglisten-Archive |
Am Donnerstag, 19. Mai 2005 23:02 schrieb Andreas Brandl:
> Hi!
Hi Andreas!
> Der u.s. Code macht doch genau das, was er soll... das Array $foo wird
> per setSomeData() jedesmal neu gesetzt, danach die Session per
> session_start() initialisiert und das Array $_SESSION neu gefüllt.
Aber wieso wird $this ueberschrieben. Es wird ja nirgendswo der Inhalt der
Session in einer Variable geschweige denn in $this zugewiesen. Das
merkwuerdige daran ist, das es auf anderen PHP Versionen - PHP5.0.4 -
funktioniert. Vieleicht kann mir jemand an einem codeschnipsel es etwas
genauer erklaeren ;).
Ich sollte noch erwaehnen das ich das Problem mit dem PEAR Auth package habe,
wenn ich die Methode start() aufrufe.
> Was dir vielleicht weiterhilft:
>
> session_start(); an den Anfang des Scripts (auch gern in der Klasse),
> danach kannst du auf $_SESSION zugreifen.
>
> > $_SESSION['foo'] = $this->foo;
>
> Hier setzt du den Wert jedesmal neu. Vielleicht willst dus ja andersrum
> (ins Blaue geraten), also so:
>
> $this->foo = $_SESSION['foo'];
>
> So könntest du das Array über eine Session hinweg 'transportieren'.
>
> Also wie gesagt:
> * erst session_start();
> * dann Zugriff auf $_SESSION
>
Genau das habe ich im Beispiel gemacht. Oder wie ist das gemeint.
<code>
function start() {
$this->setSomeData();
session_start();
$_SESSION['foo'] = $this->foo;
}
</code>
Habe trotzdem mal die Sitzung im Konstrukt der Klasse initialisert
und es stimmt es funktionert. Doch zur meiner Schande, nachvollziehen kann ich
das Verhalten aber immer noch :(
> HTH, Andreas
MfG Dejan
php::bar PHP Wiki - Listenarchive