ein kleiner tipp:
php besitzt eine funktion "str_repeat". wie der name schon andeutet, kann man mit dieser funktion einen string X mal wiederholen.
syntax: str_repeat('string',anzahlderwiederholungen)
das bietet sich bei deiner modifikation an.
anstatt:
PHP-Code:
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\">";
kannst du einfach:
PHP-Code:
$treue = str_repeat('<img src="images/stars/treue.gif">',7);
schreiben. das würde nun sieben sterne in die variable setzen.
und schon sieht der code viel netter und übersichtlicher aus. 
noch ein tipp:
wenn du mit assoziativen arrays arbeitest, so wie hier mit dem $post array, dann verwende dafür einfache anführungszeichen.
$post[joindate] ist eine falsche syntax und php gibt einen hinweis deswegen aus, vB unterdrückt den allerdings. aber der fehler ist trotzdem vorhanden, auch wenn es funktioniert, da php sehr großzügig im umgang mit falscher syntax ist.
das ist glück für vB, denn die programmierer habens damit leider auch nicht sehr genau genommen.
$post['joindate'] wäre korrekt.
die anführungszeichen darfst du innerhalb der templates nicht verwenden - denke ich, das müsste einen fehler in der eval() funktion erzeugen. ich habs aber nie getestet.
es funktioniert vielleicht auch innerhalb der templates wenn man die arrays mit geschweiften klammern umgibt. sowas wie {$post['avatar']}. aber das ist wohl auch egal, vB3 wird wohl etwas sauberer in bezug auf solche probleme/fehler sein.
weshalb ich aber eigentlich hier antworten wollte, war ein anders, aber viel wichtigeres thema.
dein code ist grundsätzlich ein magnet für mögliche sicherheitslücken und damit verbundene angriffe auf das forum.
du hast da eine "uninitialisierte variable" ($treue), wie das so schön heisst.
geh mal davon aus, dass keine deiner if-bedingungen zutrifft, also der variablen $treue keine grafik zugewiesen wird.
kein problem denkst du, dann werden halt keine sterne angezeigt?
denkste...doch ein problem!
nimm mal an, ich würde eine php datei mit dem parameter datei.php?treue=hier_ein_böser_javascript_code
aufrufen.
soforn die php option 'register_globals' aktiv ist (das ist sie leider noch immer bei vielen - und so wie vB geschrieben ist, funktionierts sogar ohne diese option) hätte ich in dem script nun die variable $treue, die einen javascript code enthält um z.b. cookies auszulesen.
falls nun keine deiner if-bedingungen zutreffen sollte, würde die variable unverändert übernommen und in den beiträgen angezeigt werden.
und dann....AUA!
doch ein problem. 
um das zu verhindern solltest du die variable vor *gebrauch* initialisieren.
das geht ganz einfach, indem du vor deine if-bedingungen einfach ein
$treue = "";
setzt.
jetzt spielt es keine rolle mehr, ob jemand irgendwelche parameter in der url übergeben und damit die variable bereits angelegt hat. egal ob sie vorher schon existiert hat oder nicht, der wert der variablen wird erstmal auf "nichts" gesetzt.
wenn nun deine if-bedingungen nicht zutreffen sollten wärs kein problem, dann hat $treue halt keinen wert.
ich hab das hier nun nur allgemein geschrieben. ich weiss nicht, ob deine modifikation wirklich eine angriffsmöglichkeit bietet, da muss man sich den restlichen code genauer ansehen.
die art und weise wie du's geschrieben hast, lässt aber die augen eines jeden, der sich mehr als fünf mal mit php beschäftigt hat, glühen. 
wie gesagt, ich weiss nicht ob dein code ein problem darstellt. aber es gibt für zahlreiche forensysteme eine große anzahl an modifikationen die solche attacken zulassen.
dem problem sollte deutlich mehr aufmerksamkeit geschenkt werden.
aber es hört ja nie jemand auf mich!
Lesezeichen