Hallo!
Waaas? Man kann die Variablen dann nicht mehr ändern? ...
Das war, wohl wie auch bei Dir, mein Problem. Es ist nicht normal!
Bsp: Einmal auf Seite2 einen Wert übergeben nach Seite1, konnte ich ihn nicht mehr ändern.
seite1.phtml
--------------------------------------------------------------
<?PHP session_register("test"); ?>
<html><body>
<?PHP
echo "<a href="seite2.phtml?" . session_name() . "=" . session_id()
."">zur 2.Seite</a>";
?>
</body></html>
--------------------------------------------------------------
seite2.phtml
--------------------------------------------------------------
<?PHP session_register("test"); ?>
<html><body>
<?PHP
echo $test;
echo "<a href="seite1.phtml?" . session_name() . "=" . session_id() . "&test=ja">JA</a>";
echo "<a href="seite1.phtml?" . session_name() . "=" . session_id() . "&test=nein">NEIN</a>"; ?>
</body></html>
--------------------------------------------------------------
Gelöst habe ich es so. Zuerst muß ich dazu noch sagen, das ich das gesamte Sessionzeug immer in eine include-Datei packe. Deshalb geht diese Lösung leicht zu händeln. Man könnte sich auch eine Klasse oder Funktion schreiben, um Programmierarbeit zu sparen.
----------------------------------------------------------------
<?PHP
session_register("s_foo1", "s_foo2");
// hier vielleicht die Übergebenen Variablen noch verarbeiten
if(isset($foo1)) { $s_foo1 = $foo1; }
if(isset($foo2)) { $s_foo2 = $foo2; }
?>
----------------------------------------------------------------
Wurde die Variable $foo1 übergeben bzw. existiert sie, weil sie mit POST oder GET übergeben wurde oder im Script erstellt wurde, dann speichere den Wert von $foo1 in $s_foo1. Ansonsten machen nichts, weil sonst wird nichts in der Variable gespeichert.<<<<<
Ich habe mir Scripte von anderen angeschaut, die mußten dieses Zeug nicht machen. Bei mir lief es nur, wenn ich die Variablen einmal "umgespeichert" habe. Ich/wir haben jetzt eine andere Maschine. Vielleicht was es ein Bug einer älteren PHP4-Version. Nur Lokal als auch auf dem server hatte ich die Probleme. Deshalb war ich damals auch so am verzweifeln. Ich habe jetzt auch keine Lust mehr, das irgendwie noch einmal zu testen. Ich mache das jetzt immer auf meine Art und fertig.
Folgendes habe ich nie probiert.
----------------------------------------------------------------
<?PHP
session_register("foo1", "foo2");
// hier vielleicht die Übergebenen Variablen noch verarbeiten
if(isset($foo1)) { $foo1 = $foo1; }
if(isset($foo2)) { $foo2 = $foo2; }
?>
----------------------------------------------------------------
Aber ohne ein "umspeichern" ging es nie.
Normalerweise ist es so, das eine registrierte Variable für die Session, über das gesamte Script zur Verfügung steht. Wenn man sich an das ganze Gedöns mit GLOBAL oder nicht GLOBAL hält. Mit dem Auslesen einer registierten Sessionvariable hatte ich nie Probleme.
Kannst es ja mal ausprobieren:
http://www.teamone.de/selfaktuell/artikel/beitrag.htm ;-)
Du wirst es nicht glauben, ich habe eins in Arbeit, aber keine Zeit. Weil ich ausgiebig auf mehreren System testen muß. Es geht bei diesem Tutorial um downloadbare Schriften.
?? huch ??? wie ??? wo passt denn der Absatz jetzt dazu ? Flash? Gästebuch? PopUps ... ?? Fragezeichen Rufzeichen! ;-)
Ich habe mich auf einen Satz mit Tutorials und das verstehen dieser Tutorials bezogen und bin ziemlich weit ausgeschweift und etwas sentimental geworden. Wenn ein Newsbie Fehler macht oder Dinge nicht verstanden hat, liegt es nicht an dem Newbie, sondern an der FAQ oder Tutorial. Ich gehe davon aus, das der Newbie sich mit dem Thema befast hat und nicht faul ist.
MfG, André Laugks