Variablen bleiben nur auf der ersten von 3 Seiten im Textfeld erhalten

boeckerl

Grünschnabel
Hi,

Wenn ich von der 2. zur 1. Seite über den Zurück Button des IE wechsle sind die Daten die zuvor eingegeben hatte noch im Textfeld vorhanden. Beim Wechsel von der 3. Seite zur 2. kann die Seite nicht angezeigt werden!
Kann mir jemand helfen

Danke schon mal im Vorraus :)
seite1:

PHP:
<? session_start (); ?> 
<body> 

<form action="seite2.php" method="post"> 
  Name: <input name="name" type="text" value="<?php echo $_SESSION['name'];?>" >
  <br> 
  Vorname: <input type="text" name="vorname" value="<?php echo $_SESSION['vorname'];?>"> <br>
  <input type="submit" value="Seite 2"> 
</form> 
</body>

seite2:

PHP:
<?php 
  session_start (); 
  session_register ("name");
  session_register ("vorname"); 
?>
<body> 

<form action="seite3.php" method="post"> 
  Strasse: <input type="text" name="str" value="<?php echo $_SESSION['str'];?>"><br> 
  PLZ/Ort: <input type="text" name="plz" value="<?php echo $_SESSION['plz'];?>"><br>

  <input type="submit" value="Eintragen"> 
</form> 
</body>

seite3:

PHP:
<? 
session_start (); 
session_register ("str");
session_register ("plz");
?> 
<body> 

<?php 
echo $name;
echo $vorname;
echo $str;
echo $plz;
?>
</body>
 
damit eine session durchgehend über mehrere seiten überhaupt erkannt wird muss was vorhanden sein (dabei ist es egal ob in der url oder in einem hidden tag)?

oder um es genauer zu beschreiben - was muss die session haben um zu erkennen das gerade diese session auch noch variablen mit tragen muss?

noch einen kleinen tipp - es fehlt auf seite 1 und 2 und wenn du von seite 3 auf seite 1 gehen willst muss das auch noch in seite 3 eingebunden werden.

also was wird es sein?

man kann es auch noch anderst formulieren - um eine session zu initialisieren wird für jede session eine ...... erzeugt. welches wort steht für die punkte? ;)
 
Danke für deine Hinweise, kann aber damit nichts anfangen. Beschäftige mich grad mal 2 Wochen mit PHP. Vielleicht könntest du mir noch einen kleinen Denkanstoß geben! :)

mfg boeckerl!
 
Es geht einfach darum, dass bei session_start() eine Session id, standardmässig PHPSESSID erzeugt wird. Diese musst du der nächsten Seite mit übergben.

Daher einfach in jede Seite ein <input type="hidden" name="PHPSESSID" value="<?php session_id() ?>"> mit angeben.
Allerdings ist es nicht ratsam bei der Verwendung von Sessions mit vor- und zurück-Buttons zu arbeiten ohne den "session_cache_limiter" zu verändern (Mehr dazu unter php.net). Du solltest daher, wenn man zwischen Seite 1- 3 navigieren soll hierzug selbst einen Link erzeugen, der die SessionID enthält.
 
Zurück