Formulareingaben wiederherstellen - Session

bleifresser

Mitglied
Hallo,

es wurde zwar schon einigemale angesprochen, dass man mittels Session die Eingaben des Nutzers für längere Zeit speichern kann, doch leider war noch nichts richtiges für mich dabei.

Zur Erklärung:

Ich habe einen "Test" (der Test besteht aus 4 Teilen auf einer Website) programmieren müssen, der nur aus Checkboxen besteht. Wenn der User das Formular abschickt, wird geprüft, ob er auch aus jedem Bereich mindestens eine Möglichkeit gewählt hat. Ist das nicht der Fall, dann soll er mittels Link zurück zum Test gelangen und dort die fehlenden Sachen eintragen.
Dummer Weise sind werden alle vorherigen Eingaben gelöscht und der Nutzer findet ein leeres Formular vor. Wie kann man das realisieren, dass die bereits getroffenen Entscheidungen wieder angezeigt werden ? Dabei interessiert mich am meisten die Möglichkeit das per Sessions zu machen. Kann mir wer helfen ?
 
Du kannst ja zu einer Session Variablen hinzufügen. Wenn du vorher überprüfst, mindestens eine gesetzt ist, soll der Inhalt der Variable als Default-Wert genommen werden, ansonsten ist der Default-Wert false. Das ist eigentlich recht einfach, du kannst da z.B. bei Login-Scripts spicken oder halt bei php.net nachschlagen, wie es geht. Ein Beispielhaftes Script habe ich gerade nicht zur Verfügung, da ich nicht zu hause bin. prinzipiell ist es aber einfach ;) Mal in Worten erklärt:

Startseite -> Link für den user zum Test
eine Seite wird geladen, um die Session zu erstellen, für jede Checkbox eine Variable (oder du nimmst nen Array). Default-Wert ist dann natürlich false.
Weiterleitung auf den Test, Session-Variablen auslesen und die Checkboxen mit dem jeweiligen DefaultWert füllen. Formular abschicken -> CheckSeite Wenn Fehler, vorherige Seite laden
Auf dieser Seite dann ne Fehlermeldung ausgeben, am besten sogar, wo etwas fehlt (sprich: expliziete Angabe, mit nem Anker könnt man dann direkt den User dahin springen lassen).
Wenn kein Fehler, auf die nächste Seite weiterleiten.

Alternativ könnte man auch ein JavaScript, welches dein Formualr vor dem PostBack überprüft. Da kann ich dir aber leider nicht weiterhelfen (weiß nur, dass das möglich ist). Dann brauchst du auch keine Session.



Gruß Radhad
 
Ich musste das Thema doch nochmal öffnen. Ich bin nicht wirklich weiter gekommen, da ich mich mit php noch nicht lang genug beschäftigt habe.

Ich habe nun die Session gestartet.
Vom Testformular werden Array's übergeben, da bei Checkboxen mehrere Sachen markiert sein können. Hier ein Codeauszug:
PHP:
<input type="checkbox" name="bestFach[]" value="mathe" />Mathematik<br />
	  <input type="checkbox" name="bestFach[]" value="deutsch" />Deutsch<br />
	  <input type="checkbox" name="bestFach[]" value="kunst" />Kunst<br />
	  <input type="checkbox" name="bestFach[]" value="sprachen" />Sprachen<br />
	  <input type="checkbox" name="bestFach[]" value="politik" />Politik / Geschichte<br />
	  <input type="checkbox" name="bestFach[]" value="physik" />Physik<br />
	  <input type="checkbox" name="bestFach[]" value="biologie" />Biologie<br />
	  <input type="checkbox" name="bestFach[]" value="chemie" />Chemie<br />
	  <input type="checkbox" name="bestFach[]" value="informatik" />Informatik

Hier wird das Array "bestFach" übergeben und wird in der Datei itest_wertung.php ausgewertet.
Wie muss ich die Einträge aus dem Array (bestFach) als Sessionvariable speichern ?
Wie muss ich die Abfrage realisieren, wenn die Markierungen wieder hergestellt werden sollen ?
Brauch dringend Hilfe, da ich nun auch noch Termindruck hab.
Thx, Frank.
 
Zurück