Biko: Zurück von einer Fehlerseite sind meine Formulareingaben weg

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

  1. 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

    1. 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

      1. 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