DeWitt: Automatische Weiterleitung nach Formulareingaben?

Hallo,

Ich bin seit einiger Zeit am Überlegen, ob ich nach Formulareingaben, die dann über ein Script ausgewertet werden, automatisch weiterleiten soll, oder den User dies über einen Button erledigen lassen soll.

  • Vorteil der Weiterleitung: Ein Klick weniger für eilige Leute
  • Nachteil: Wenn man ein Formular absendet, und danach in einen anderen Tab wechselt (mach ich z.B. gerne), sieht man die Bestätigung nicht.

Was ist eure Meinung dazu?

--
selfcode ie:% fl:( br:< va:) ls:} fo:| rl:( n4:° ss:) de:] js:| ch:] sh:( mo:| zu:(
<< Life is just a moment in eternity,
yet every life echoes there >>
  1. Hi!
    Also ich bin für die Weiterleitung!
    Ist das so schlimm, wenn man in den anderen Tab wechselt und dann die Bestätigung nicht sieht? Meiner Meinung nach nicht. Oder gibt es größere Nachteile, die mir noch nicht bekannt, bzw. aufgefallen sind?
    Also: Weiterleitung :)

    ciao, hubschraubaer

  2. Hi DeWitt!

    Was ist eure Meinung dazu?

    Es kommt ganz darauf an, was für Formulareingaben in Empfang genommen werden. Wenn ich etwas schreiben muss (z.B. Name, Adresse, etc.) würde ich gerne das Recht haben Änderungen vorzunehmen bzw. Fehler zu verbessern.
    Wenn ich nur Multiplechoiceaufgaben lösen soll, bervorzuge ich die Weiterleitung. :)

    MfG H☼psel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
    1. Es kommt ganz darauf an, was für Formulareingaben in Empfang genommen werden.

      Hast Recht, das sollte ich mal präzisieren: Es geht um diverse Aktionen in einer User-Datenbank (Daten bearbeiten, Daten löschen, neue Datensätze anlegen usw).

      Oder gibt es größere Nachteile, die mir noch nicht bekannt, bzw. aufgefallen sind?

      Nun ja, es zumindest die Weiterleitung mit META-Tags wird von http://de.selfhtml.org/html/kopfdaten/meta.htm#weiterleitung@title=SELFHTML kritisiert, und die Kritikpunkte kann ich auch gut nachvollziehen. Allerdings treffen die meisten davon nicht zu (z.B. in Bezug auf Robots) hier nicht wirklich zu, da es sich sowieso um interne Bereiche handelt.

      --
      selfcode ie:% fl:( br:< va:) ls:} fo:| rl:( n4:° ss:) de:] js:| ch:] sh:( mo:| zu:(
      << Life is just a moment in eternity, yet every life echoes there >>
      1. Hi,

        Hast Recht, das sollte ich mal präzisieren: Es geht um diverse Aktionen in einer User-Datenbank (Daten bearbeiten, Daten löschen, neue Datensätze anlegen usw).

        und was soll als Resultat auf den submit kommen? Ich verstehe die Frage nach einer Weiterleitung überhaupt nicht.

        Nun ja, es zumindest die Weiterleitung mit META-Tags wird von http://de.selfhtml.org/html/kopfdaten/meta.htm#weiterleitung@title=SELFHTML kritisiert, und die Kritikpunkte kann ich auch gut nachvollziehen. Allerdings treffen die meisten davon nicht zu (z.B. in Bezug auf Robots) hier nicht wirklich zu, da es sich sowieso um interne Bereiche handelt.

        Dieser meta-tag ist lediglich eine -unsichere- Hilfsmethode. Wenn möglich, sollte dann zumindest ein serverseitiger Redirect erfolgen, wobei ich die Entgegennahme, Verarbeitung und Rückmeldung in einer Datei bevorzuge und das von Sven angesprochene Problem auch hierin über das Script löse.

        freundliche Grüße
        Ingo

        1. und was soll als Resultat auf den submit kommen? Ich verstehe die Frage nach einer Weiterleitung überhaupt nicht.

          Tut mir leid, wenn das nicht klar rüberkam, hier nochmal ein ausführliches Beispiel:

          Ein Benutzer ändert über ein Formular seine (Benutzer-/Konfigurations-/...)Daten. "submit" gibt diese Daten an ein Script weiter, dass diese verarbeitet und danach natürlich irgendeine Rückgabe an den Browser liefern muss.
          Und genau bei dieser Rückgabe bin ich auf der Suche nach verschiedenen Lösungsansätzen, da wie ich finde jeder gewisse Vor- und Nachteile hat:

          1.) Anzeige einer Bestätigungs-Seite à la "Ihre Änderungen wurden übernommen. [Link zur Übersicht]".
          Nachteil: Möglichkeit eines erneuten Aufruf des Scripts durch Refresh oder die Browser-History

          2.) Anzeige einer Bestätigungs-Seite à la "Ihre Änderungen wurden übernommen. [Link zur Übersicht]" + Weiterleitung mit meta-tag.
          Nachteil: Nur "Hilfsmethode"

          3.) Serverseitige Weiterleitung durch Status-Code 301 (?).
          Nachteil: Keine (unmittelbare) Anzeige einer Bestätigung möglich

          Dieser meta-tag ist lediglich eine -unsichere- Hilfsmethode. Wenn möglich, sollte dann zumindest ein serverseitiger Redirect erfolgen, wobei ich die Entgegennahme, Verarbeitung und Rückmeldung in einer Datei bevorzuge und das von Sven angesprochene Problem auch hierin über das Script löse.

          Klingt sinnvoll, auf einen derartigen Vorschlag hatte ich gehofft. Verstehe ich das richtig, dass das dann quasi nach folgendem Schema abläuft:

          Formularausgabe über changethis.pl?do=showform -Submit->
          Datenverarbeitung über changethis.pl?do=change -Status 302->
          Bestätigung über changethis.pl?do=confirm

          Ich hoffe ich trete das Thema hier nicht allzu breit, aber ich möchte einfach meinen Programmier-Stil verbessern und suche deswegen nach Verbesserungen an diversen Stellen ;).

          --
          selfcode ie:% fl:( br:< va:) ls:} fo:| rl:( n4:° ss:) de:] js:| ch:] sh:( mo:| zu:(
          << Life is just a moment in eternity, yet every life echoes there >>
          1. hi,

            Ein Benutzer ändert über ein Formular seine (Benutzer-/Konfigurations-/...)Daten.
            [...]
            1.) Anzeige einer Bestätigungs-Seite à la "Ihre Änderungen wurden übernommen. [Link zur Übersicht]".
            Nachteil: Möglichkeit eines erneuten Aufruf des Scripts durch Refresh oder die Browser-History

            Und möglicher praktischer Nachteil in diesem Falle wäre welcher?
            Die Datenänderung würde mit den gleichen Werten erneut vorgenommen.

            gruß,
            wahsaga

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
            1. Moin!

              1.) Anzeige einer Bestätigungs-Seite à la "Ihre Änderungen wurden übernommen. [Link zur Übersicht]".
              Nachteil: Möglichkeit eines erneuten Aufruf des Scripts durch Refresh oder die Browser-History

              Und möglicher praktischer Nachteil in diesem Falle wäre welcher?
              Die Datenänderung würde mit den gleichen Werten erneut vorgenommen.

              Was ärgerlich ist, wenn in einem anderen Fenster oder parallel in einem anderen Browser zwischenzeitlich schon wieder andere Werte eingetragen wurden. Oder die Werteänderung sehr viel Performance kostet, weil aufwendige Operationen oder Berechnungen ausgeführt werden, oder eklige Sperren, die alle anderen Operationen aufhalten, erneut gesetzt werden. Oder nervende Aktionen wie das erneute unnötige Absenden eines kompletten Newsletters gestartet werden.

              Soll heißen: Es hängt vom Einzelfall und der Akzeptanz der möglichen Nebenwirkungen ab.

              - Sven Rautenberg

              --
              My sssignature, my preciousssss!
          2. Moin!

            3.) Serverseitige Weiterleitung durch Status-Code 301 (?).
            Nachteil: Keine (unmittelbare) Anzeige einer Bestätigung möglich

            Irgendeinen Tod muß man sterben.

            Formularausgabe über changethis.pl?do=showform -Submit->
            Datenverarbeitung über changethis.pl?do=change -Status 302->
            Bestätigung über changethis.pl?do=confirm

            So ist es - sofern du Wert auf eine Bestätigungsseite legst. Du kannst die vorzunehmenden Aktionen auch mit einer Session verfolgen und durch Speichern der bereits erreichten Schritte ganz automatisch den jeweils folgenden Schritt anspringen. Sowas bietet sich aber nur an, wenn ohnehin eine Session existiert (ohne existierende Session, die man mitbenutzen kann, würde ich das nicht machen). Dein Skript weiß also beim ersten Aufruf, dass es das Formular anzeigen muß. Kriegt es die Formulardaten zugeschickt, weiß es, dass es entweder das Formular erneut zur Korrektur von Fehlern anzeigen muß, oder es speichert die neuen Daten, und leitet auf sich weiter. Der dritte Skriptaufruf weiß, dass gerade eben Daten gespeichert wurden, und gibt die Bestätigung aus.

            Die Methode, einfach ein allgemeines "Danke, alles in Ordnung"-Skript zu haben, auf das nur weitergeleitet wird, wenn wirklich alles in Ordnung war, ist in meinen Augen aber der einfachste Mechanismus, der sehr gut funktioniert.

            - Sven Rautenberg

            --
            My sssignature, my preciousssss!
          3. Hi,

            1.) Anzeige einer Bestätigungs-Seite à la "Ihre Änderungen wurden übernommen. [Link zur Übersicht]".
            Nachteil: Möglichkeit eines erneuten Aufruf des Scripts durch Refresh oder die Browser-History

            Wieso Nachteil? Mit den gleichen Daten wird doch nichts mehr geändert. Außerdem könnte das Script in diesem Fall darauf reagieren und zurückmelden, dass keine (neuen) Änderungen vorgenommen wurden.

            2.) Anzeige einer Bestätigungs-Seite à la "Ihre Änderungen wurden übernommen. [Link zur Übersicht]" + Weiterleitung mit meta-tag.
            Nachteil: Nur "Hilfsmethode"

            Und lästig.

            3.) Serverseitige Weiterleitung durch Status-Code 301 (?).

            302 wäre besser. Und das ist nur eine Technik, keine dritte Alternative.

            Nachteil: Keine (unmittelbare) Anzeige einer Bestätigung möglich

            Wieso nicht? Man kann:
            3a) das Formular vom Ausgabescript selbst verarbeiten lassen (Affenformular) oder
            3b) von einem Auswertungsscript zu dem aufrufenden Script wieder zurück weiterleiten.
            In diesem Fall müßte lediglich die Information übergeben werden, was zurück zu melden ist.

            Verstehe ich das richtig, dass das dann quasi nach folgendem Schema abläuft:

            Formularausgabe über changethis.pl?do=showform -Submit->
            Datenverarbeitung über changethis.pl?do=change -Status 302->
            Bestätigung über changethis.pl?do=confirm

            Fast. Das wäre 3a und erfordert ja keine Weiterleitung, also 200.

            freundliche Grüße
            Ingo

  3. Moin!

    Ich bin seit einiger Zeit am Überlegen, ob ich nach Formulareingaben, die dann über ein Script ausgewertet werden, automatisch weiterleiten soll, oder den User dies über einen Button erledigen lassen soll.

    Auf jeden Fall Weiterleitung. Das verhindert nämlich sehr sicher, dass man durch einen unabsichtlichen Reload oder Neubesuch der Seite in der History die Skriptaktion neu und damit doppelt startet.

    • Vorteil der Weiterleitung: Ein Klick weniger für eilige Leute

    Hängt davon ab, was nach der Weiterleitung zu sehen ist. Die Bestätigungsseite kann ja auch als Resultat der Weiterleitung kommen.

    • Nachteil: Wenn man ein Formular absendet, und danach in einen anderen Tab wechselt (mach ich z.B. gerne), sieht man die Bestätigung nicht.

    Hängt, wie erwähnt, von der Gestaltung deiner Weiterleitung und deren Ziel ab.

    - Sven Rautenberg

    --
    My sssignature, my preciousssss!