Seite 1 von 1

Doppelte Posts verhindern

Verfasst: 17.06.2004 12:36
von DocSnyder
hi,

in meinem Board kommt es manchmal zu doppelten Posts der User, also der gleiche Beitrag wird zweimal eingetragen. Bisher konnte ich das selbst nie nachvollziehen.
Ich denke mal, es wird wegen einer schlechten Internetverbindung/langsamer Server/etc zu einem Timeoute beim Beitrag erstellen kommen. Der User denkt dann, das der Beitrag nicht angekommen ist, und drückt nochmal auf 'Absenden'.
Könnte man das verhindern? Das der Beitrag zB. erst in die DB eingetragen wird, wenn die "Deine Nachricht wurde erfolgreich eingetragen." Meldung kommt? (Stell ich mir in meiner naiven Art jetzt mal so vor ;)).

Verfasst: 17.06.2004 12:40
von MartinU
Naja wenn die eigentliche Funktion erst NACH der Bestätigung ausgeführt wird, dann ist die Bestätigung doch sinnfrei oder?

Ich könnte mir vorstellen das bei jedem Post überprüft wird es von diesem User schon einen Post in den Thread gibt und wenn ja ob es der GLEICHE Post war ... ist ja kein großes Problem denk ich mal ... bin nur noch nicht mit dem phpBB _so_ vertraut als das ich das jetzt direkt umsetzen könnte .. ( außerdem bin ich auf Arbeit ) :D

Verfasst: 17.06.2004 12:46
von DocSnyder
MartinU hat geschrieben:Naja wenn die eigentliche Funktion erst NACH der Bestätigung ausgeführt wird, dann ist die Bestätigung doch sinnfrei oder?
Ja, ok. Irgendwie müsste auf beiden Seiten (user<->server) festgestellt werden können welchen Zustand die Aktion gerade hat.
Aber ich habe das Gefühl, das das ein prinzipielles Problem ist. Ich erinnere mich da an riesige 'NUR EINMAL KLICKEN' Hinweise bei Kreditkartentransaktionen über den Browser. Ansonsten besteht wohl die Gefahr das die Kreditkarte 2x belastet wird. Scheint ein ähnliches Problem zu sein...
.. ( außerdem bin ich auf Arbeit ) :D
Wer ist das nicht ;)

Re: Doppelte Posts verhindern

Verfasst: 17.06.2004 13:24
von Christian_W
DocSnyder hat geschrieben:"Deine Nachricht wurde erfolgreich eingetragen." Meldung kommt?
Der Grund, dass diese Meldung kommt ist (unter anderem), damit Doppelposts verhindert werden.
Dann gibt es auch noch eine Zeit die mindestens vergangen sein muss bevor ein neuer Beitrag (oder derselbe nochmal) gesendet werden kann sonst kommt diese Meldung: "Du kannst einen Beitrag nicht so schnell nach deinem letzten absenden, bitte warte einen Augenblick."
Bei kleineren Boards kann man sicher vorm eintragen in die Datenbank auch noch überprüfen ob es diesen Beitrag schon gibt. Aber gerade bei großen Boards dürfte das die verlorene Performance deutlich problematischer sein als die Möglichkeit, dass es ab und an doppelte Beiträge gibt.

Gruß Christian

Re: Doppelte Posts verhindern

Verfasst: 17.06.2004 15:08
von DocSnyder
Christian_W hat geschrieben:Der Grund, dass diese Meldung kommt ist (unter anderem), damit Doppelposts verhindert werden.
Hm, das verstehe ich nocht nicht so ganz. Was ja bei mir passiert ist, man klickt auf Absenden und wartet auf die Bestätigung vom Board die aber nie kommt. Allerdings ist der Beitrag trotzdem bereits in die DB eingetragen worden.

Verfasst: 17.06.2004 16:37
von Christian_W
Wenn der Beitrag abgesendet wird, wird er in der Datenbank gespeichert. Evtl. werden die Mail-Benachrichtigungen versendet. Dann wird die Seite angezeigt, dass der Beitrag erstellt wurde. Wenn es jetzt nach dem Eintragen in die Datenbank irgendein Problem gibt wird die Seite nicht angezeigt, der Beitrag ist aber trotzdem in der Datenbank gespeichert.

Gruß Christian

Verfasst: 17.06.2004 16:56
von DocSnyder
Ah...die mail Benachrichtigungen könnten ein Problem sein, da es grad eh Probs mit dem pop/smtp bei mir gibt...Guter Tipp thx :)