This is a message from a german user. I think you can understand what he means, cause I'm too tired at the moment to translate (later).
Quote from: FreakaZ
Der erste ...
#1
Art: fehlende Prüfung
Ort: Sources/Recent.php (Zeile 128 - 147)
Priorität: niedrig
Situation:
Wenn das Forum keinerlei Beiträge (Posts) besitzt, und man sich die letzten 10 Beiträge anschauen möchte erhält man folgenden Datenbankfehler:
You have an error in your SQL syntax near ')
ORDER BY m.ID_MSG DESC
LIMIT 0, 10' at line 14
File: /worx/www/root/boards/smf/Sources/Recent.php
Line: 149
Problembereich mit Zeilennummern:
128 $messages = array();
129 while ($row = mysql_fetch_assoc($request))
130 $messages[] = $row['ID_MSG'];
131 mysql_free_result($request);
147 AND m.ID_MSG IN (" . implode(', ', $messages) . ")
Beschreibung:
Das Array $messages wird nicht geprüft ob leer oder gefüllt. Bei Abfrage der Datenbank mit einem leeren Array erfolgt Fehlermeldung.
Loesung:
Prüfung einbauen, wie ...
zwischen Zeile 131 und 133
$messages = implode(', ', $messages);
if ($messages == "") {
$messages = "0";
}
Zeile 147 aendert sich dann in:
147 AND m.ID_MSG IN (" . $messages . ")
Anmerkung:
Die Warscheinlichkeit das ein Forum 0 Posts hat ist zwar ziemlich unwarscheinlich, aber kann ja vorkommen. :o
MfG
FreakaZ
P.S.: Ich bin kein PHP Profi und bastel mehr aus Spaß an der Sache, ich denk mal die Devs finden da eine elegantere Lösung. ;D
That's not the best fix, but I've done it what I would call "properly" in the distribution ;).
-[Unknown]
I'll report it.