PHP-Session verhindert javascript:history.back()
Felix
- php
Hallo Forum,
ein normales Formular hat bei mir als action ein PHP-Skript, in dem ich die Eingabe prüfe und falls ungültig, auf eine Fehlerseite mit Fehlermeldung und Link "javascript:history.back()" verweise.
Soweit so gut, bei mehreren Eingabefelder stehen meine Eingaben noch da, wenn ich über den Link zurückgehe. Wenn ich allerdings durchgängig Sessions in den Skripten starte, sind alle Eingabefelder leer und ich muß die Formulareingaben vor der Prüfung mühselig in der Session speichern und auf der Fehlerseite nicht per History sondern direkt auf die Formularseite verweisen, wo dann die Eingabefelder aus der Session beschrieben werden. Hoffe, mein Problem ist verständlich ;-)
Warum ist das nun so?
Gruß,
Felix
Hallo Felix,
also ich habe durchgängig schlechte Erfahrungen mit den "eingebauten" Sessions gemacht und kenne Dein Problem nur zu gut. Möglicherweise hab ich mich zu Anfang nicht richtig und erforderlichermaßen gründlich mit Sessions in PHP beschäftigt. ;)
Um solche "Fehler" zu vermeiden benutze ich ein eigenes Session-Handling und speichere die "Sessiondaten" in einer Datenbank. Um eine eindeutige ID zu bekommen, verwende ich md5(uniqid(microtime()));, die ich dann entweder in einem Cookie speichere, oder übergebe sie per GET.
Damit bin ich bis heute immer gut gefahren und habe keinerlei Probleme mehr.
MfG
Chris
Hallo,
ich verstehe nicht so ganz, warum du den User bei Fehleingaben überhaupt auf eine neue Seite leitest. Wäre es nicht sinnvoller, das Formular mit den Usereingaben und Fehlerhinweisen an der entsprechenden Stelle wieder anzuzeigen? Gibst du denn fuer den Fall, dass das Formular bereits einmal gesendet wurde, die vom User eingegebenen Werte in deinem Formular auch aus?
also ungefaehr so:
<input type="text" name="vorname" value="<?php if(isset($_SESSION['vorname'])) echo $_SESSION['vorname']?> />
Gruss, Uschi
Hallo Forum,
ein normales Formular hat bei mir als action ein PHP-Skript, in dem ich die Eingabe prüfe und falls ungültig, auf eine Fehlerseite mit Fehlermeldung und Link "javascript:history.back()" verweise.
Soweit so gut, bei mehreren Eingabefelder stehen meine Eingaben noch da, wenn ich über den Link zurückgehe. Wenn ich allerdings durchgängig Sessions in den Skripten starte, sind alle Eingabefelder leer und ich muß die Formulareingaben vor der Prüfung mühselig in der Session speichern und auf der Fehlerseite nicht per History sondern direkt auf die Formularseite verweisen, wo dann die Eingabefelder aus der Session beschrieben werden. Hoffe, mein Problem ist verständlich ;-)
Warum ist das nun so?
Gruß,
Felix