News:

SMF 2.1.4 has been released! Take it for a spin! Read more.

Main Menu

No posts in Forum -> Error viewing the recent posts (last 10)

Started by Daniel D., March 15, 2004, 01:12:22 AM

Previous topic - Next topic

Daniel D.

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

[Unknown]

That's not the best fix, but I've done it what I would call "properly" in the distribution ;).

-[Unknown]

Daniel D.


Advertisement: