Zurück von einer Fehlerseite sind meine Formulareingaben weg
Biko
- php
0 Henryk Plötz0 Biko
Hallo zusammen.
Ich habe das Problem, dass ich auf einer PHP-HTML Site ein Formular habe. Bei falscher Eingabe leitet ein HEADER auf eine Fehlerseite.
Wenn ich jetzt zurück gehe (history.back) sind die Formulareingaben weg.
Kann es daran liegen, dass die Formularseite bei ihrem Aufruf dynamische Daten aus einer Datenbank abfragt?
Schon mal vielen Dank für die Mühe,
Biko
Moin
Ich habe das Problem, dass ich auf einer PHP-HTML Site ein Formular habe. Bei falscher Eingabe leitet ein HEADER auf eine Fehlerseite.
Wenn ich jetzt zurück gehe (history.back) sind die Formulareingaben weg.
Kann es daran liegen, dass die Formularseite bei ihrem Aufruf dynamische Daten aus einer Datenbank abfragt?
Wenn ich mich richtig erinnere löscht der Browser die Formularangaben beim Zurückblättern wenn er die Seite nicht aus dem Cache holen konnte, also wenn entweder der Cache abgeschaltet ist oder dein Skript das Caching verbietet.
Ich weiss nicht um was für eine Fehlerseite es sich bei dir handelt, aber ich verfolge meist den Ansatz bei Fehleingaben (oder in gewissem Maße auch bei Ausführungsfehlern) dem User einfach nochmal das selbe Formular schon ausgefüllt mit seinen letzten Eingaben und einer Fehlermeldung am Seitenanfang zu präsentieren. Dann braucht er die Rückwärtstaste gar nicht.
--
Henryk Plötz
Grüße aus Berlin
Moin
Ich habe das Problem, dass ich auf einer PHP-HTML Site ein Formular habe. Bei falscher Eingabe leitet ein HEADER auf eine Fehlerseite.
Wenn ich jetzt zurück gehe (history.back) sind die Formulareingaben weg.
Kann es daran liegen, dass die Formularseite bei ihrem Aufruf dynamische Daten aus einer Datenbank abfragt?
Wenn ich mich richtig erinnere löscht der Browser die Formularangaben beim Zurückblättern wenn er die Seite nicht aus dem Cache holen konnte, also wenn entweder der Cache abgeschaltet ist oder dein Skript das Caching verbietet.
Ich weiss nicht um was für eine Fehlerseite es sich bei dir handelt, aber ich verfolge meist den Ansatz bei Fehleingaben (oder in gewissem Maße auch bei Ausführungsfehlern) dem User einfach nochmal das selbe Formular schon ausgefüllt mit seinen letzten Eingaben und einer Fehlermeldung am Seitenanfang zu präsentieren. Dann braucht er die Rückwärtstaste gar nicht.
Hi Henryk,
danke für die schnelle Antwort!
Rufst Du einfach die Formularseite noch mal auf oder übergibst Du das bereits eingebene nochmal an die Seite, wenn ein Fehler gemacht wurde?
Ciao,
Achim
--
Henryk Plötz
Grüße aus Berlin
Moin
Hi Henryk,
danke für die schnelle Antwort!
Rufst Du einfach die Formularseite noch mal auf oder übergibst Du das bereits eingebene nochmal an die Seite, wenn ein Fehler gemacht wurde?
Meine Skripte sehen zum größten Teil so aus (aus dem Kopf und unvollständig):
<?php
unset($error);
if($aktion) {
// Übergebene Daten überprüfen
// Zum Beispiel
if($zahl > 10) $error=TRUE;
else {
// mehr überprüfungen/Aktionen ausführen
// Wenn Aktion erfolgreich ausgeführt redirect auf andere Seite oder eine Erfolgsmeldung anzeigen
}
}
?>
<html>
<!-- mehr HTML-Code -->
<?php if($error) {?>
<p>Huch, da hast du wohl was falsch gemacht.</p>
<?php } ?>
<form action="<?php echo $SCRIPT_NAME;?>" method="GET">
<input type="text" name="zahl" value="<?php echo htmlentities($zahl);?>">
<input type="submit" name="aktion" value="senden">
</form>
<!-- mehr HTML-Code -->
</html>
So oder so ähnlich mache ich es immer, und imho geht das so gut.
--
Henryk Plötz
Grüße aus Berlin