phpbar.de logo

Mailinglisten-Archive

[php] Sessionvariablen in einer Klasse wiederherstellen

[php] Sessionvariablen in einer Klasse wiederherstellen

Thomas Beckmann php_(at)_phpcenter.de
Tue, 21 Aug 2001 09:28:05 +0200


>Ich habe eine Klasse, die ich in einem Skript initialisiere:
>
>$mySession =3D new session;
>
>In dieser Klasse existiert ein Array namens "pagevars", auf die ich von
>aussen mit $mySession->pagevars[test] zugreifen kann. Dieses Array soll
>in der Session gespeichert werden, damit ich sp=E4ter wieder
>darauf zugreifen kann.
>
>Wie mache ich das am sinnvollsten?
>Am liebsten w=E4re es mir, ich k=F6nnte innerhalb des Objektes das Array=
 in
>der Session speichern und wiederherstellen. Oder muss ich das ausserhalb
>machen?=20
Nein.=20
Oh, warte, nicht da=DF wir uns mi=DFverstehen: ich hab' Dein Beispiel
nochmal gelesen: Ich glaub nicht, da=DF Du
>    session_register("pagevars");
machen kannst, also nur einen Teil des Objektes speichern - $pagevars
m=FC=DFte dann schon eine eigenst=E4ndige Variable sein, denke ich, denn =
es
mu=DF ja darauf eine Referenz erstellt werden.
>Kann ich das ganze Objekt speichern?=20
Ja, siehe oben, ich denke, das mu=DFt Du sogar.
>Wenn ja, muss ich es dann jedesmal neu initialisieren (mit $mySession =3D=
 new session),=20
>wenn ich das Skript neu aufrufe=20
Nein.
>oder sind dann alle Methoden und Variablen in dem
>Objekt gespeichert?=20
Du mu=DFt die class-definition in dem script verf=FCgbar haben, wo Du mit
session_start die Variable wieder zug=E4nglich machen willst.
>Muss ich jedesmal, wenn ich das Skript lade, die
>Variablen mit session_register() neu in der Session abspeichern, oder
>nur einmal?
nur einmal, danach machst Du ein session_start und die Variable ist
wieder da.
>Also z.B. so?
include_once('mySession-class.php');
>if (!session_is_registered('mySession')) {
	$mySession =3D new session;
>	session_register('mySession');
}
else session_start();
>Oder kann ich session_register() problemlos bei jedem Start des Skriptes
>mit aufrufen?
Hab' ich nicht ausprobiert.

>Ich glaube, ich kapiere die Sessions nie ... aber ich muss leider durch.
Eigentlich ist's ganz einfach, Deine Fragen sind genau die, die ich
mir auch gestellt hatte - die halbe Miete ist schon drin :-)

>Kann mir das ganze verst=E4ndlich erkl=E4ren?
War das verst=E4ndlich genug?

Sonst frag' gern nochmal nach ...

Ach ja, kleine Anmerkung:
$mySession ist ja dann (wahrscheinlich, abh=E4ngig vom namespace, in dem
Du session_start bzw. session_register aufrufst) eine globale
Variable, die Du in Funktionen mit=20
	global $mySession;
bekannt machen mu=DFt - hat mich mal 'ne Weile gekostet, obwohl's ja
eigentlich klar ist ...


---
Thomas Beckmann, Kiel, Germany
beckmann_(at)_gis.de


php::bar PHP Wiki   -   Listenarchive