Thread Formular-Daten zwischenspeichern (8 answers)
Opened by chmod777 at 2009-09-18 17:45

pq
 2009-09-19 20:12
#125966 #125966
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
2009-09-19T17:52:56 sid burn
Ich selber mache z.B. keine Webseiten die ein Formular anzeigt, und gleichzeitig auf die gleiche URL ein "POST" macht.

warum nicht?

Quote
Daher "/user/create" wäre z.B. die URL zum anzeigen des Formulars und "/user/do_create" wäre z.B. wohin die daten gepostet werden. Wird der Benutzer richtig angelegt, dann gibt es einen redirect entweder auf das erstellte, z.b. "/user/123/show" oder direkt auf eine liste mit allen usern "/user/list" etc.

wieso sind das zwei unterschiedliche urls?
ich habe dafür eine url, /login/register. bei einem submit wird geguckt, ist alles korrekt eingegeben, wird der user angelegt und danach ein redirect gemacht. wenn nicht, zeigt /login/register eben das formular nochmal an. da sehe ich jetzt kein problem drin...

vielleicht kannst du ja erklären, warum du der meinung bist, dass es zwei unterschiedliche urls sein sollten?

Quote
Dieser Weg macht man ganz einfach deswegen damit du immer und zu jedem zeitpunkt in deinem browser korrekt vor/zurück nutzen kannst. ohne das jemals Firefox die Frage stellt wie "Dies war ein POST Request, Daten nochmal senden?"

Beim IE ist es nochmal schlimmer der sagt dir dann einfach das die Seite "ausgelaufen" ist und das war es.

wenn ich in einem registrierungsprozess bin und bei falschen daten das formular nochmal angezeigt bekomme, mit meinen bisher eingegeben daten, sehe ich erstens gar keine veranlassung, nochmal zurückzugehen (es sei denn, das formular lässt irgendwelche daten weg, die ich mühsam nochmal eintippen muss), und zweitens zeigt mir weder der firefox 3 noch der IE6 (mehr hab ich grad nicht zum testen auf linux wine) so eine meldung. beide browser zeigen beim klick auf den backbutton das vorherige formular an, welches ein post-request war, und das ohne nachfrage.
vorgehen: aufruf des formulars per GET, ausfüllen, abschicken per post, nochmal abschicken per POST, und dann klick auf zurück. geht wunderbar. in opera auch.


Quote
Weiterhin hat man durch dieses vorgehen immer gültige URLs die auf das zeigen was man sieht, ohne das auf einmal ungewollt irgendwas erstellt wird wenn man z.B. "F5" drückt oder ein Bookmark auf einmal nicht mehr funktioniert.

das problem entsteht ja erst gar nicht, wenn man nach dem erfolgreichen erstellen einen redirect macht. aber man braucht keinen redirect, wenn die daten falsch waren und man gar keinen user erstellt hat.



Quote
Das mit dem erstellen und F5 konnte man z.B. vor einiger Zeit hier in diesem Forum sehen, woran du dich vielleicht noch erinnern kannst. Wenn man nämlich einen Thread erstellt hatte hatte man ohne die URL zu wechseln, sprich ohne redirect, auf den erstellten Thread gewechselt.

ja, das war im alten forum so.

Quote
Es ist also nur eine Frage wie korrekt du es haben möchtest, und was du in kauf nimmst. Da ich auf Vor/Zurück wert lege ohne das auf einmal irgendwelche neuen Dinge erzeugt werden, oder es im IE gar nicht geht

bei mir geht das wie gesagt wunderbar. kannst du es hier im forum beim threaderstellen mal nachstellen? hier verwende ich ja auch ein und dieselbe url und mache nur nach dem erstellen einen redirect.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem

View full thread Formular-Daten zwischenspeichern