Hallo,
da benötigst Du nur ein einziges hidden-Field:
$DATA = unserialize(base64_decode($_POST["hid_data"]));
$packed_data = base64_encode(serialize($DATA));
<input type="hidden" name="hid_data" value="<?php echo $packed_data; ?>">
Im Array $DATA werden die Daten gesammelt. Bau auch einen Levelzähler ein. So kannst Du dich von Level zu Level hangeln. Das Script ist dann immer orientiert, welche Fragerunde nun als nächste dran ist. Den Levelzähler setzt Du nur weiter, wenn die Fragen ordentlich beantwortet wurden, sonst bleibt er stehen, wo er war und stattdessen wird $DATA["fehlermeldung"] mit einem Wert gefüllt.
Die selbe Seite wird dem User also erneut vorgelegt. Die Fehlermeldung erscheint (vom Ausgabealgorithmus generiert). Wenn der User die Fragen nun zufriedenstellend beantwortet, wird der Zähler auf die nächste Seite weitergesetzt und die Fehlermeldung gelöscht.
...
Jede "Seite" bekommt im Script eine eigene Funktion.
Du musst nur ganz konsequent
- Ausgabe-Routine
- Datenerfassung im Script
- Datenübernahme aus dem Script
- Datenverarbeitung, Fehlercheck
voneinander trennen.
Und das Knackproblem ist ein ganz anderes: den Erstaufruf des Scriptes zu identifizieren, damit alles initialisiert werden kann. Aber das wirst Du bestimmt hinbekommen ;-))
Liebe Grüße
Tom