History.back() -> Formulareinträge sind weg

Hallo Experten,

Status:
Ich habe einen Login-Bereich für registrierte Benutzer. Die Login-Daten sind in einer Session gespeichert. Die Session wird bei allen im Login-Bereich befindlichen Seiten gestartet, da ich immer wieder darauf zurückgreifen muss. Im Login-Bereich befindet sich u.a. ein Formular. Nach dem Ausfüllen des Formulars werden die Form-Einträge durch Klick auf den Submit-Button an ein Script übergeben, welches eine Vorschau (es handelt sich um eine über das Formular mit Inhalten zu füllende HTML/PHP-Seite) liefert. Falls der Benutzer mit den Eingaben nicht zufrieden ist oder ein anderes Design (steht im Formular zur Auswahl) wählen will, soll er auf den history.back()-Button in der Seite klicken und seine Formulareinträge korrigieren können.

Problem:
Die Vorschau funktioniert. Jedoch nur Einbahnstraße: Nach dem Klick auf den history.back()-Button (nicht der des Browsers) erscheint zwar das Formular, aber die Einträge sind alle verschwunden. Der Benutzer muss also alles erneut eingetragen. Das ist natürlich inakzeptabel.

Frage:
Wie kann ich die Formulareinträge „retten“? Das muss doch auch mit geöffneter Session möglich sein, oder !? Wo liegt mein Fehler? Irgendwas muss ich doch übersehen haben.

DANKE !!!

Gruß
Huttatta

Hallo.

Frage:
Wie kann ich die Formulareinträge „retten“? Das muss doch auch
mit geöffneter Session möglich sein, oder !? Wo liegt mein
Fehler? Irgendwas muss ich doch übersehen haben.

Du hast doch alle Formulardaten in einer Session gespeichert?
Dann prüf einfach, ob eine Session existiert (in deiner Formularseite). Wenn eine existiert, schreibst du die Variablen einfach wieder mit echo() zurück in die Felder.
Dazu darfst du aber nicht history.back() nehmen, sondern musst mit einem normalen Link wieder auf die Startseite linken.

Gruß,
Sebastian

Hallo Sebastian,

Du hast doch alle Formulardaten in einer Session gespeichert?

nein. Nur die Benutzerdaten. Die Einträge des Formulars nicht.

Dann prüf einfach, ob eine Session existiert (in deiner
Formularseite). Wenn eine existiert, schreibst du die
Variablen einfach wieder mit echo() zurück in die Felder.
Dazu darfst du aber nicht history.back() nehmen, sondern musst
mit einem normalen Link wieder auf die Startseite linken.

Die Session besteht in jedem Fall, da eben die Benutzerdaten dort gespeichert sind. Das hätte aber auch einen Nachteil, denn falls der Benutzer das Formular ein zweites Mal während der gleichen Session ausfüllen will, wird dieses immer mit den alten Werten vorbelegt. Das möchte ich nicht. Das Formular mehrmals auszufüllen ist vorgesehen bzw. für einen neuen Vorgang möglich.

Es muss doch auch ganz normal mit history.back() möglich sein. Bei ganz gewöhnlichen HTML-Formularen ist das doch auch kein Problem, selbst wenn die „action-Datei“ überhaupt nix macht und z.B. einfach ne HTML-File ist (sinnloses Beispiel). Wenn ich dann history.back() benutze sind die Einträge doch auch noch drin. Sogar über mehrere Stationen history.back() geht das.

Ich verstehe einfach nicht, warum es ausgerechnet hier nicht geht.

Gruß
Huttatta

Hat das eventuell mit der Verarbeitung der Daten durch das Script zu tun, an welches sie übergeben werden? Die Variablen bleiben aber dort auch immer die Gleichen und sie bleiben unverändert.

Hallo Huttatta.
Leider weiß ich jetzt auch nicht mehr weiter, es ist mir völlig rätselhaft…

Gruß,
Sebastian

Hallo Sebastian,

Leider weiß ich jetzt auch nicht mehr weiter, es ist mir
völlig rätselhaft…

du sagst es! Mir auch. echo „Kacke!!!“; ?> Aber trotzdem vielen Dank für deine Antworten. Ich habe mittlerweile haareraufend die umständlichste Lösung erarbeitet, die man sich überhaupt vorstellen kann: Die Daten lasse ich vom Vorschau-Script in eine gesonderte Tabelle schreiben. Beim Klick zurück zum Formular wird die Tabelle ausgelesen, die Formularfelder vorbelegt und die Tabelle dann wieder geleert. Naja … mir ist eben nichts anderes mehr eingefallen. Aber dafür funktioniert es zuverlässig und meine Haare wachsen auch wieder nach. Ich muss dann mal ganz in Ruhe, wenn mein Zeitdruck weg ist, an einer anderen Lösung rumüberlegen. Das kann’s ja eigentlich nicht gewesen sein. Unglaublich.

Gruß
Huttatta

naja, so kompliziert muß man es echt nicht machen. Also mit Sessions sollte es immer funktioniert, wenn sie korrekt eingesetzt werden. Ansonsten guck mal in der php.ini unter „session.cache_limiter“.

Bye,
Danny

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]