Simple Machines Community Forum

Customizing SMF => SMF Coding Discussion => Topic started by: Daniel D. on March 15, 2004, 01:12:22 AM

Title: No posts in Forum -> Error viewing the recent posts (last 10)
Post by: Daniel D. on March 15, 2004, 01:12:22 AM
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:

Code: [Select]
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:
Code: [Select]
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
Code: [Select]
$messages = implode(', ', $messages);

if ($messages == "") {
$messages = "0";
}

Zeile 147 aendert sich dann in:

Code: [Select]
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
Title: Re: No posts in Forum -> Error viewing the recent posts (last 10)
Post by: [Unknown] on March 15, 2004, 01:17:09 AM
That's not the best fix, but I've done it what I would call "properly" in the distribution ;).

-[Unknown]
Title: Re: No posts in Forum -> Error viewing the recent posts (last 10)
Post by: Daniel D. on March 15, 2004, 01:28:29 AM
I'll report it.