Mod für functions_post.php / Umfrage vote_options_id
Verfasst: 08.09.2005 18:45
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
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