Seite 1 von 1

Mod für functions_post.php / Umfrage vote_options_id

Verfasst: 08.09.2005 18:45
von Sternputzer
Der bug hier ist reproduzierbar:

Ich erzeuge eine Umfrage mit 5 Antworten "1", "2", "3", "4", "5" (man könnte auch "a", "b", "c" etc. nehmen für die Übersicht).

Das ergibt in der Datenbank in phpbb_vote_results folgende Einträge (mit jeweils identischem Wert abhängig von der Anzahl der vorhandenen Umfragen im Forum in vote_id, durch den diese Umfrage gekennzeichnet wird.)

vote_option_id: vote_option_text:
1 1 <<-- oder "a", je nachdem
2 2
...
5 5

Dann editiere ich in PHPBB die Umfrage und lösche eine Antwort, zum Beispiel die "2" (oder "b", je nachdem).

Der Eintrag fehlt jetzt in der Datenbank korrekt, das heißt: Kein Eintrag mit vote_option_id = 2.

Dann editiere ich die Umfrage nochmal in PHPBB und füge ein neues Element hinzu, sinniger Weise mit der Antwort "6" (oder "f", je nachdem).

Jetzt steht in der Datenbank:
vote_option_id vote_option_text:
1 1
3 3
4 4
5 5
5 6

Das ist zweimal derselbe Wert für vote_option_id.

Die Funktion hat zählt offenbar beim Hinzufügen eines Elements zu einer Umfrage nur die Zahl der Einträge, erhöht sie um 1 und gibt dann n+1 in die Datenbank als Wert für die neue vote_option_id aus.

In einer umfangreichen Abstimmung mit vielen nachträglichen Änderungen führt das zu kuriosen Ergebnissen.

Ich vermute, dass der Bug in functions_post.php in der Funktion "Add Poll" ist.

Die Funktion sollte entweder die vorhandenen Werte für vote_option_id berücksichtigen und daraus den höchsten Wert n für den neuen Wert n+1 ermitteln oder gleich alle Werte für vote_option_id neu setzen.

Leider blick ich bei php zu wenig durch, um mir auf die Schnelle zu helfen.

Hat jemand eine Idee, wie das zu korrigieren wäre?

Günther