Dein Browser kann leider nicht vernünftig mit CSS umgehen. Den Inhalt siehst du, das Design dagegen ist futsch.

Kommentar-Spam-Schutz bei Sunlog 0.2

Dienstag, November 22, 2005

Die Billig-Lösung.

Wenn Blog-Software umsonst ist, schickt es sich nicht, funktionierende Änderungen für sich zu behalten, seien sie auch noch so einfach ;-) Deswegen: Hier meine Mini-Lösung gegen Kommentar-Spam.

Erst mal muss man bei den Kommentaren-Feldern in templates/item.html ein weiteres Feld einführen, beispielsweise (die eckigen Klammern müssen natürlich durch spitze ersetzt werden):

[tr][td class="formleft"]Zehn plus fünf?[/td][td][input class="feld" type="text" name="abc" size="40" value="" /][/td][/tr]

Da ich davon ausgehe, das die Bots halbwegs intelligent sind und sowohl den Namen der Felder als auch den zugehörigen Text auswerten, wollte ich den Auswerte-Aufwand möglichst gross machen und habe eine Textaufgabe verwendet und dem Anti-Spam-Feld einen 0815-Namen vergeben.

Das Feld muss natürlich ausgewertet werden. In post_comment.php müssen zwei Ergänzungen. Zunächst wird der Wert des Anti-Spam-Feldes einer Variable zugewiesen, dann wird diese Variable der Funktion übergeben, die den Kommentar auswertet:

Ergänzung nach Zeile 44:
$antispam = $_POST['abc'];
Änderung in Zeile:
$community_o->insertComment($_POST['i'], $commentData, $uid, $antispam);

Jetzt fehlt nur noch die Auswertung des Feldes. Dazu in core/community_o.class.php folgende Anderungen vornehmen:

Änderung in Zeile 79:
function insertComment ($article_id, $comment_data, $user_id, $antispam)
Ergänzung nach Zeile 80:
if ($antispam != 15){ $this->error->set_error("insertComment(): antispam value invalid. Ignore.", true); return false; }

Zugegeben, die Hürde für die Bots könnte man noch viel grösser machen, indem beispielsweise die letzten beiden Zahlen der ID addiert werden müssten, natürlich auch als Text-Aufgabe. Eine Lösung ganz ohne Extra-Feld wie Andreas Ahlensdorf sie für Sunlog 0.4 anbietet, ist natürlich noch eleganter :-)

Von engel am 22.11.2005 07:25 • techblogdiary
Dieser Eintrag kann nicht mehr kommentiert werden.