Kommentarbug - doppelpost beim aktualisieren
#1
geschrieben 26. Juli 2017 - 10:27
Dies sorgt mal schnell für nen ungewollten mehrfachkommentar (mir bereits mindestens 2 mal passiert)
dagegen gibts 2 Wege:
1) nachdem der comment vom server entgegengenommen wurde mit nem 302 bzw 303 zum comment leiten (erzwingt dass der post nicht mehr mitkommt)
2) multipost sperre, wenn im selben kontext (also antwort auf nachricht x) die selbe nachricht nochmal kommt, diese verweigern.
Anzeige
#2
geschrieben 26. Juli 2017 - 16:17
Siehst du bei F5 die Meldung dass etwas erneut übertragen werden soll?
#3
geschrieben 26. Juli 2017 - 16:18
Zitat (Wiesel: 26. Juli 2017 - 16:17)
Siehst du bei F5 die Meldung dass etwas erneut übertragen werden soll?
nein, opera (und damit auch chrome) machts einfach.
Breaker hatte heute einen dieser posts entfernt.
Dieser Beitrag wurde von My1 bearbeitet: 26. Juli 2017 - 16:19
#4
geschrieben 26. Juli 2017 - 16:20
Hast du irgendwelche Addons am laufen die da unter Umständen irgendetwas blocken?
#5
geschrieben 26. Juli 2017 - 16:23
#6
geschrieben 26. Juli 2017 - 16:30
#7
geschrieben 26. Juli 2017 - 16:34
das erneut senden kommt bei opera scheinbar nur wenn der in der zwischenzeit zu war und die tabs wiederherstellt oder ähnliches aber bei nem einfachen F5 knallt der einfach den POST neu und wenn der server den so frisst kommt eben der extra kommentar.
es reicht ja schon serverseitig bevor die seite geladen wird nen HTTP oder meta redirect auf die selbe seite, (ggf mit anker hab ich nicht probiert) zu machen um die seite ohne POST aufzurufen und damit den browser beim refreshen keinen POST zu nutzen.
#8
geschrieben 26. Juli 2017 - 16:39
Geht gar nicht.
Man könnte gegen sowas eine Gateway-Seite einbauen, wo zB nur "Danke für den Post" steht und dann binnen Momenten irgendwoandershin weitergeleitet wird.
Kommentaren anzeigen und abschicken müßte dann getrennt werden, also /comments.php?mode=view&artId=12345 zum Auflisten, /comments.php?mode=replyto&refer=23456 als form_action. Wenn man dann den Post abschickt, müßte comments.php im Moduls REPLYTO dem Kommentar #23456 eine Antwort hinzufügen (= eine Ebene drunter) und dann per Location: auf /comments.php?mode=view zurückverweisen, entweder sofort oder mit dem erwähnten Gateway-Text, daß man sich für den Post bedanke.
Dann bleibt nix über, was bei f5 oder bei session_restore überzählige POST-Information behalten könnte.
Aber wie gesagt, es ist eigentlich nicht Aufgabe des Webservers, kaputte Browser zu reparieren.
#9
geschrieben 26. Juli 2017 - 16:40
und dazu ist das neusenden nicht zwangsläufig was von kaputt, sondern bspw auch dann hilfreich wenn insbesondere im drosselnetz mal die seite ne grätsche macht. und iirc ist POSTs neu senden beim aktualisieren normales verhalten.
Dieser Beitrag wurde von My1 bearbeitet: 26. Juli 2017 - 16:42
#10
geschrieben 26. Juli 2017 - 16:57
ALLERDINGS kann man solche Warnungen optional abschalten. Dann gibt's den Doppel-POST tatsächlich ungefragt auf f5 oder dergleichen.
Ist aber aus dem o.a. Grund eine eher... schlechte Idee, das so zu machen.
Und nein, man muß Gatewayseiten nicht anzeigen. Hab ich glaub ich auch geschrieben. Eine Umleitung muß es aber geben (den 30x) und der muß auch "woandershin" zeigen, sonst bleibt der POST erhalten und man hat gar nix gekonnt.
#11
geschrieben 31. Juli 2017 - 15:36
Wir haben bereits sehr lange einen von dir als "multipost sperre" bezeichneten Filter, der mehrfaches Senden des gleichen Kommentares herausfiltert. In deinem Fall hat der aber leider nicht gegriffen, da er relativ einfach gehalten ist, um das Posten der Kommentare nicht unnötig zu verlangsamen. Ich habe den Filter jetzt überarbeitet und es sollten hier keine Probleme mehr auftreten. Falls doch, melde dich einfach.

Die Umleitung nach dem Posten hatten wir seinerzeit auch in unsere Überlegungen einbezogen, diese hatte aber andere Probleme zur Folge, so das wir uns für den Filter entschieden haben.
#13
geschrieben 22. September 2017 - 11:24