Automatische Weiterleitung nach Formulareingaben?
DeWitt
- meinung
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.
Was ist eure Meinung dazu?
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
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
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.
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
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 ;).
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
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-HistoryUnd 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
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
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
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