Seite 1 von 1
Doppelte Topics bei erneuter Editierung des Topics
Verfasst: 03.06.2008 10:50
von TSB
Getestet mit: phpbb 3.0.1 / Firefox 3.0 RC1 / Opera 9.50b / Internet Explorer 7
Nutzt man nach erstellen eines Topics den Browser Back-Button um das erstellte Topic zu editieren, so findet sich nach erneutem absenden das Topic zweimal im Forum (bzw. jede Editierung auf diese Weise legt ein neues Topic mit demselben Topic-Titel an...).
PHPBB vergibt wohl keine Topic-ID beim Anlegen/Erstellen eines neuen Topics oder prüft zumindest den Topic-Titel, denn wenn man ein bestehendes Topic editiert und dieses über den Browser Back-Button editiert, werden keine "Kopien" angelegt.
Nur der Internet Explorer lässt den Browser-Back Button nicht zu, da: "Die Webseite ist abgelaufen". Im Prinzip sollte der Back Button nutzbar sein, aber er sollte auch nicht solch einen Fehler mit Kopien des Topics schaffen/ermöglichen.
Grüße
Harald
Verfasst: 03.06.2008 14:54
von moneycoach
Sozusagen rufst du mit dem zurück-Button das Formular, um ein neues Thema zu erstellen, erneut auf. Das geschieht völlig unabhängig davon, ob du vorher schon ein Thema erstellt hast, oder nicht. phpBB bemerkt einfach nur einen erneuten Aufruf "Neues Thema in Forum xy erstellen" und gibt das Formular erneut aus. Dass die Angaben schon eingetragen sind, liegt am Browser.
Somit kein phpBB Fehler.
Verfasst: 03.06.2008 15:19
von TSB
phpBB sollte jedoch beim Erstellen eines Themas schon eine ID für das zu erstellende Topic "reservieren", so dass ein erneutes Absenden des Selben Formulars nicht das Thema erneut erstellt wird.
Der Bug ist unpraktisch, da der Nutzer den Fehler gar nicht direkt bemerkt und unter Umständen den Inhalt seines erstellten Themas schnell editieren/korrigieren möchte und dabei fleißig das gleiche Topic wieder und wieder anlegt...
Ich bin noch nicht so tief in phpBB eingestiegen, vermutlich kann an dieser Stelle (anlegen eines Themas/Topics) noch keine ID für das Topic bereitgestellt werden (da das Topic noch nicht in der DB angelegt wurde). Könnte man nicht eine temporäre CreateTopicID setzen und das doppelte Absenden des Selben Erstellformular unterdrücken oder gleich dem eventuell schon vorhandenen Thema zuordnen.
Alternativ könnte man vielleicht auch erst einmal nur Anhand des Topic Titels das Anlegen deselben Titels unterbinden (zum Beispiel keine doppelten Titel innerhalb xx Stunden)...
EDIT:
Könnte man nicht in phpBB eine laufende Sequenz-ID bereitstellen, so dass man später im Programmcode unter Anderem prüfen kann, ob ein Topic mit der Selben Sequenz-ID nicht schon angelegt wurde.
Das Problem betrifft auch das Antworten auf einen Beitrag, zwar meldet das System dann, dass zwischenzeitlich schon ein neuer Beitrag eingetragen wurde führt aber nicht zu dem eigentlich erwartetem Verhalten, dass man seinen ursprünglichen Beitrag "editiert"...
Danke und Grüße
Harald
Lösung für Doppelte Topics/Posts bei Browser Back-Button
Verfasst: 04.06.2008 18:07
von TSB
Ich habe mir mal die Lösung erstellt.
Es können nun durch den Browser Backbutton keine doppelten Postings und Topics angelegt werden (es wird immer das ursprüngliche Posting aktualisiert.
Lösung:
Sequenz-ID für Aktionen wie Topic oder Beitrag anlegen. Diese wird für die Editierseite erstellt ($mode == 'post').
Beim Anlegen des neuen Postings wird auch diese Sequenz-ID mit gespeichert.
Wird nun ein Topic angelegt oder ein Beitrag erstellt, wird zuerst geprüft ob (eventuell nur in diesem Forum?) nicht schon ein Posting mit dieser Sequenz-ID existiert und der Modus entsprechend angepasst ($mode == 'edit' + Post-ID gesetzt falls Beitrag vorhanden), ansonsten ist es tatsächlich ein neues Posting...
Ich bin noch neu in phpBB. Welcher Programmierer vom phpBB Team könnte die Lösung verifizieren (eventuell noch optimieren), bzw. wie kann die Lösung in das phpBB Board integriert werden (es ist schließlich ein Lösung eines "Bugs")?
Ich muss die Korrekturen noch für die Drafts anpassen und könnte es dann "veröffentlichen", wenn Interesse besteht...
Danke und Grüße
Harald