Also ich hab das Gästebuch mal in der Form erweitert, daß bei bestimmten Schlüßelwörtern 'deleted' auf '1' gesetzt wird und der Eintrag somit nicht im Gästebuch erscheint.
Was sich auch als erstaunlich wirksam rausgestellt hat, ist der Vergleich, ob Vorname gleich Nachname ist. In diesem Fall setzte ich deleted auch auf '1'. Das schöne dabei ist, daß Einträge, die fälschlicherweise als "Spam" erkannt wurden, nicht verloren sind.
if (strcmp($saveData['surname'],$saveData['firstname']) == 0) $saveData['deleted'] = '1';
$temp=strtolower($saveData['entry']);
if (strpos($temp,"jude") > 0 || strpos($temp,"demokratie") > 0 || strpos($temp,"holocaust") > 0) $saveData['deleted'] = '1';
Der Code kommt VOR
$insert = $GLOBALS['TYPO3_DB']->exec_INSERTquery($this->strEntryTable, $saveData);
(ca. in Zeile 670)
Die Suchbegriffe kann man einfach erweitern und müssen klein geschrieben werden. Je nach Seite kann es auch sein, daß die nicht passen (zb. demokratie).
Im Prinzip wär es besser, einen Regulären Ausdruck zu verwenden, aber leider hat der Linux-Regexp nicht unter Windows funktioniert, so daß ich hier strpos verwende.
Wenn man die Einträge gar nicht in der Datenbank haben will, so kann man ja vor dem INSERT abfragen, ob 'deleted' auf '1' gesetzt wurde.
Wenn ich demnächst mal Zeit habe, werde ich noch eine Zeitstempelüberpüfung einbauen, so daß Gästebucheinträge die in weniger als X Sekunden (z.b. 7) geschrieben wurden, zurückgewiesen werden.
Ein weiterer intressanter Ansatz wäre, den Gästebucheintrag erstmal zu razor zu schicken. Je nach dessen Resultat wird er auch verworfen.