WP – SpamViewer zum Löschen und Retten von Spam (Plugin)

Die Zeiten ändern sich.

Dieser Beitrag scheint älter als 10 Jahre zu sein – eine lange Zeit im Internet. Der Inhalt ist vielleicht veraltet.

In einem älteren Beitrag – Trackback Validator Spam Cleaner Plugin – hatte ich bereits auf ein Plugin hingewiesen, mit dem ich die Einträge verwalte, die das Plugin TrackbackValidator erkennt und speichert. Es kommt doch immer mal vor, dass korrekte Trackbacks als Spam erkannt werden und so nicht den Weg in den Kommentarbereich von WordPress finden. Das Plugin kann die falschen Einträge retten und unnötige Einträge in der Datenbank löschen, um diese klein zu halten.
Nachdem ich dann mit einigen WordPress-Nutzern, Danke dabei an Michael, Matthias, Robert und Fabian, am testen war, sind gleich mehrere Wünsche hinzugekommen und so musste ich das Konzept umstellen und hier ist nun ein Plugin für alle WP-User, die ihre Datenbank pflegen wollen und leidlich von Spam geplagt sind.

Anforderungen:

Der SpamViewer arbeitet unter WP 1.5* und WP 2.* inkl. 2.5. Erkannt wird Spam in der Tabelle comments und tb_data.

Screenshot:

SpamViewer Screenshot

Was macht das Plugin?

Das Plugin prüft in diesen beiden Tabellen, insofern diese vorhanden sind (wobei comments eigentlich immer da ist), ob es Einträge gibt, die als Spam deklariert sind. Dazu zählen unter anderem auch Einträge die z.B. Plugins wie Akismet oder SpamKarma erkennen.
Die gefundenen Einträge werden dann gelistet und insofern man sie retten kann, erscheint eine Checkbox vor jedem Eintrag. Wird dieser Aktiviert, so kann mit Hilfe des Buttons „Unspam mich!“ der Eintrag als normaler Kommentar in die Warteschlange geschoben werden.
Außerdem existieren Buttons, um die Einträge in der Datenbank zu löschen. Achtung, diese ist nicht rückgängig zu machen – also Vorsicht und erst prüfen, ob sie wirklich nicht benötigt werden.

Das Plugin listet Track-, Pingback mit unterschiedlichen Farben um die Erkennung zu erleichtern. Ebenso versucht es fehlgeleitete Trackbacks zu erkennen und farbig darzustellen.

Installation:

  1. Die zip-Datei downloaden und entpacken
  2. Kopiere die Datei in dein Plugin-Verzeichnis (/wp-content/plugins/), kein Unterverzeichnis
  3. Kopiere das Sprachfile spamviewer-de_DE.mo hinzu, wenn du eine deutsche Oberfläche wünschst
  4. Aktiviere das Plugin im Adminbereich deines Blogs
  5. Nun ist unter „Verwalten“ (WP <2.*) „Kommentare“ (WP >2.*) einer neuer Button „SpamV(0)“ zu finden

Download:



Ist die Arbeit nicht 1 Euro wert?
Jede Spende wird dankbar angenommen und ermöglicht das weitere Arbeiten an freier Software.
Möchtest du mehr oder anders spenden, so besuche meine Wunschliste.

Download als zip-Datei (incl. Spachfiles): downloads.wordpress.org/plugin/spamviewer.zip – 45 KByte

Historie:

  • 0.6 – neues Konzept, derzeit in der Beta, alles was irgendwie in _comments oder _tb_data als Spam liegt kann gerettet oder gelsöcht werden
  • 0.68 – eine Version läuft
  • 0.7 – Testroutinen entfernt und Sprache angepasst
  • 0.8 – deustches Sprachfile (pot), original php-Datei in englisch
  • 0.9 – WP 2.1 kompatibel, Neue Abfrage zu Trackback-Tabelle beim Retten von Spam
  • 0.91 – Zusätzlicher UnSpam-Button, falls es zu Fehlern beim Auslesen von Spam kommt
  • 0.92 – Neuer Code für codex-Standard und weniger globale Variablen
  • 0.94 – Berichtigung im Code für Tabelle tb_data
  • 0.95 – Zusätzliche Abfragen und die Deaktivierung von Code in Spam-Kommentaren
  • 0.96 – Erkennung von Trackbacks, Pingbacks und Aussage, ob es eventuell kein Spam sein sollte
  • 1.0 – „schönes Englisch“, Auflistung der Trackback und Pingbacks vor KommentarSpam, neue Sprachdateien für deutsch; Vielen Dank an Sadly für die englsiche Überarbeitung
  • 1.2 – Grouping per Author-ID, Integration in den Kommentarbereich
  • 1.3 – Anpassungen der Tabelle im Layout
  • 1.4 – Kleinigkeiten im Code
  • 1.5 – WP 2.3 und tb_data gefixt
  • 1.6 – WP 2.5 Design-fähig
  • 1.6.3 – WP 2.6 fähig, Optimnierung der Tabellen nach dem Löschen von Spam-Einträgen

85 Comments

  1. Hallo Frank,

    war mir ein Vergnügen dir beim Testen zu helfen und würde auch bei anderen plguin test bei intresse dabei sein.

    Man sollte evt. anmerken das der "Spam Viewer" auch Spam Beiträge aus "Askimet, Spam Karma2 & CJD Spam Nuke" ausliest und sich darüber Löschen lassen.

    Das plugin jedenfalls läuft einwandfrei und ohne schwierigkeiten. Selbst bei den WordPress Versionen "2.0.2 & 2.0.3"

    gruss fabian

  2. Erstmal Danke für das Plugin. Der Mensch ist ja faul und hiermit erspare ich mir schon einiges an Hin- und Hergeklicke. Wobei ich dahingehend noch einen Verbesserungsvorschlag hätte. Und zwar ganz simpel nur noch ein Button, der direkt alle Spamkommentare löscht, also auch die von z.B. Akismet erkannten Trackbacks.

    Gruß, Legolas

  3. @Legolas: das war der eigentliche Ansatz und konnte nicht so einfachr realisiert werden, da die Abfagen dann wesentlich komplizierter werden. Nicht alle User nutzen den TrackbackValidator und deshalb habe ich das getrennt. Wenn ich wieder dran bin, dann schaue ich nochmal danach.
    LG Frank

  4. Wenn ich das Plugin aktivieren will bekomme ich folgende Fehlermeldung:

    Warning: Cannot modify header information - headers already sent by (output started at /home/httpd/vhosts/blogkom.net/httpdocs/wp/wp-content/plugins/spamviewer.php:275) in /home/httpd/vhosts/blogkom.net/httpdocs/wp/wp-includes/pluggable-functions.php on line 272

  5. Danke für das Plugin. So etwas habe ich genau gesucht, da ich unter Spam Nuke entdeckte, dass ein paar versehentlich als Spam bezeichnete Kommentare, bzw. Trackbacks erscheinen. Diese würde ich gerne rückgängig machen und da kommt Dein Plugin ja wie gerufen.
    Ich habe nun nur das Problem, dass diese unter Plugins nicht angezeigt wird. Ich habe es wie beschrieben heruntergeladen und umbenannt (Firefox / Ziel speichern unter - dann rechte Maustaste / Umbenennen / spamviewer.php - Upload im Ascii Modus in den Plugin Ordner)

  6. @theddy: kann keinen Konflikt erkennen. Was für eine Wp-Version? Was wird in pluggable-functions.php on line 272 aufgerufen?

    @Michael Herrling: spam_viewer.php und automatischer Upload mal testen. Danke. Richtiges Verzeichnis?

  7. @Frank: Das Verzeichnis stimmt, habe es mit der von Dir genannten Dateibezeichnung nochmals versucht. Leider kein Erfolg. Das Plugin taucht in der Liste nicht auf. Habe es mal im Ascii Modus sowie Binär versucht, bzw. mit der Übertragungseinstellung "automatisch".

  8. WP ist hier aktuell 2.0.4. pluggalbe-functions.php ist ein Core File von WP - da habe ich nichts dran verändert.

    Auf Zeile 272 steht: $i = ceil(time() / 43200);

  9. @Michael.
    Es kommt eben so, mit rechter Maustaste klicken nicht die PHP Datei, sonderen eine HTML-Datei, in der der PHP Code dargestellt wird. Du musst links klicken, um diese Seite zu sehen, dann alles markieren, kopieren und das dann in einem normalen Editor Einfügen und dann als PHP abspeichern.

    @Frank
    Den PHP Code solltest du nicht als HTML auf deiner Seite speichern, sondern als normaler Text - also z.B. spamviewer.txt. Dann kann man rechts-klicken und den Download machen und die txt-Datei dann umbenennen in php.

  10. @theddy: Ich speichere den Code als php-Source, so wird als Standard empfohlen. Als txt wäre es sicher für den einen oder anderen einfacher. Vielleicht sollte ich zusätzlich zip anbieten.

    Danke für den Hinweis, ist mir noch nie aufgefallen, da ich immer erst den Code lese, wenn ich auf einer Siete phps sauge.
    Zu deinem problem: bitte lösche mal die letzte zeile im Plugin ?>. Es scheint ein Konflikt mit einem anderen Plugin vorzuliegen. Kann es mir sonst nicht erklären, da ich unter den gleichen Vorraussetzungen teste plus mehrere Blogs und verschiedene Versionen. Gruss

  11. @Frank
    Wenn ich auf den Link des php Code klicke, sehe ich den PHP Code - aber formatiert, farbig - und das ist dann eben nicht PHP sondern eine ganz normale HTML Seite. Und wenn man sowas in den Plugin-Ordner speichert, dann wird das nicht als Plugin erkannt.

    Ich würde nur ZIP anbieten - ent-zippen könnten die Meisten und der Download vom Browser wäre problemlos.

    Dein Plugin werde ich testen. Was macht die letzte Zeile überhaupt normalerweise?

  12. Danke für die Hinweise. Nachdem ich den Quelltext nun mit einem Editor als PHP abgespeichert hatte, tauchte das Plugin auf der entsprechenden Seite auf. Nach dem Versuch es zu aktivieren erhielt ich dieselbe Fehlermeldung wie theddy. Anschließend habe ich die letzte Zeile, bzw. exakt diesen Teil herausgenommen: add_action('admin_menu', 'fbtbv_delete_add_manage_page');
    Nun nochmals hochgeladen und das Plugin erschien bereits aktiviert, unter Verwalten erschien jedoch kein Button. Nun wieder zurück zur Pluginseite und ich erhielt erneut die Fehlermeldung.
    Bei mir ist die WP Version noch v2.0.2

  13. Ja, mit dem letzte ?> löschen geht es. Habe auf einem anderen WP 2.0.4 Installation auch noch versucht - auch dort läuft es erst fehlerfrei, wenn diese letzte Zeile gelöscht wird.

  14. SUPER!!! Ich habe die ZIP Version unverändert genutzt und es funktioniert prima! Herzlichen Dank für die prompte Hilfestellung. Dieses Plugin ersetzt nun bei mir Spam Nuke dank der tollen Unspam Funktion! Danke!

  15. Hallo zusammen,

    also ich nutze den Spam_Viewer in der Version 0.65 die noch aus der Testphase stand.

    Hier lässt sich "SpamKarma2, Askimet, TrackbackValidator, CDJ Spam" Spam einträge entfernen auch ohne TrackbackValidator Plugin.

    Frank eventuell solltes du die letzte Version nochmal gründlichs Testen, den die v0.65 läuft bei mir (WP 2.024 beim test 2.0.2) einwandfrei.

    gruss Fabian

  16. Hy Fabian,
    daran wurde nichts geändert. Es gibt die, wenn TBV aktiviert ist, zwei Buttons zum Löschen von Kommentarspam und Trackbackspam. Falls der TBV nicht aktiv ist, so gibt es immer nur den einen Buton, der SpamKarma, Akismet, CDJ etc. bedient - also alle Plugins, die in _comments schreiben.
    Scheinbar gibt es aber Probleme bei den unetrschiedlichen WP-Installation mit dem Abschluss eines Plugins. Denn bisher habe ich immer alle Plugins als php-Datei begonnen und beendet. Lasse ich den Abschluss ?> weg, dann geht es irgendwie besser. Werde mir da nochmal die API ansehen.
    LG Frank

  17. Wie gemeldet, läuft dein Plugin, wenn man die PHP-Endzeile weglässt. Aber ich denke auch, dass dies wohl nicht ganz in Ordnung sein kann, da muss irgendwo noch ein Problem vorliegen. Ich habe andere Plugins angesehen und die sind immer sauber PHP abgeschlossen.

  18. Es gibt eine ganze Reihe von Plugins, die ohne den Abschluss auskommen, wenn ich nur wüste warum. Das Problem gibt es ja auch nur bei manchen WP-installationen.

  19. Ich arbeite mit WP 2.0.4. Ich habe seit der Installation das Problem, dass immer Fehlermeldungen auftauchen, wenn ich ein Plugin deaktivieren oder aktivieren will:

    
    Warning: Cannot modify header information - headers already sent by (output started at /wp-content/plugins/spam_viewer.php:1) in /wp-includes/pluggable-functions.php on line 272

    Klicke ich auf den Zurück-Button iom Browser und aktualisiere die Plugin-Seite, wurde die gewünschte Aktivierung bzw. Deaktivierung jedoch ausgeführt. Woran kann das liegen?

    Mein zweites Problem hängt direkt mit der Funktionalität des Plugins zusammen: Kommentarspam lässt sich mittels der Checkbox "Unspam mich!" markieren. Bei Trackback-Spam erhalte ich leider nur keine Checkbox... Was tun?

    Ich habe neben diesem Plugin auch Spam Karma, Akismet und Trackback Validator am Laufen...

    LG, Jens

  20. Hy Jens: bitte mal die aktuelle Version .71 nutzen, falls du sie noch nicht benutzt. Ansonsten mal testen, ob du am Ende des Plugins die Beendigung von php benötigst, also ?> bei .71 hinzufügen.
    Gibt es bei dir Spam von TBV, der keine Checkbox besitzt, so ist dieser als eindeutiger Spam deklariert und eigentlich kann man diesen nicht so einfach retten. Ich beobachte nun TBV schon lange und bisher war es immer zuverlässig. Die Checkbox bei Trackbacks erscheint nur, wenn der TBV sich unsicher ist. Hast du Trackbackspam, den du retten möchtest, der aber keine Checkbox bekommt?

    Gruss Frank

  21. Hi Frank, und danke für die schnelle Antwort. Ich habe .71 installiert - und was die Fehlermeldung anbetrifft, so hatte ich mich bereits durch die Kommentare gewühlt und testweise ?> hinzugefügt. Leider erhalte ich die Fehlermeldung in beiden Fällen. Wahrscheinlich gibts da irgendwie Kompatibilitätsprobleme mit einem anderen Plugin, das ich verwende?! Muss ich mal testen.

    Sorry, was die Trackbacks anbetrifft: Irritierte mich einfach, dass die Checkbox bei TB-Spam nicht aufgetaucht ist. Hab ich das irgendwo überlesen? Wär vielleicht einen Hinweis wert. Die (374!) identifizierten TB-Spams waren allesamt eindeutig Spam, von daher hat mir das Plugin schon richtig geholfen.

    Mir ist noch was anderes aufgefallen. Das Plugin zerschießt meinen Charset, nachdem ich es aktiviert habe. Aus ä's und ü's etc. werden kryptische Zeichen... (ich verwende ISO-8859-1).

  22. Kein Problem, bin über Hinweise dankbar. Der Hinweis zur Checkbox steht oben bei: Was macht das Plugin?
    Gruss und wäre schön, insofern du den Fehler findest, wenn du mir mal mitteilst, woran es liegt.
    Frank

  23. Klar, wird gemacht. Hast Du vielleicht noch eine Vermutung, warum Umlaute und Sonderzeichen zerschossen werden, wenn ich das Plugin aktiviere?

  24. Habe ich, ich habe im Plugin Umlaute benutzt und nicht als html-genutzt. Kommt in der Sprachdatei, bin aber noch nicht ganz fertig. Nächste Version ist original english und die Sprachdatei sorgt dann für ein deutsches Layout auch bei ISO-mimetyp.
    Gruss Frank

  25. Pingback: Leserblog der HNA
  26. Neue Version mit englischer Oberfläche. Die deutsche Oberfläche kann über ein Sprachfile erzeugt werden. Nun sollten die Darstellungsfehler behoben sein, siehe Kommentar 26.
    Liebe Grüsse Frank

  27. ich kann alles anstellen was ich will bei mir kommt meldet er immer einen mysql fehler (Zeile 29 im script), der hacken an der sache ich sehe in keiner fehler im script, aber am besten ist wenn ich dir die fehlermeldung komplett gebe 😉

    http://blackblog.dkfan.info/fehler.txt

    MfG
    BlackRocket

  28. Danke, für den Hinweis, kleiner Fehler im Code, den ich im Test nciht merkte, da dort die Tabelle tb_data nicht vorhanden war. Nun sollte es gehen - V0.93

  29. jo der fehler is nun weg dafür sind nun 3 neue da, wobei zweitere nicht korrekt ist da daten in tb_data vorhanden sind.
    fehlermeldungen siehe og datei.

    MfG
    BlackRocket

  30. läuft bei mir fehler frei, danke.
    und entschuldigen muss du dich dafür nicht fehler können nun mal passieren und wer mit soft arbeitet die noch nicht versi 1.... erreicht hat muss davon ausgehen das es noch fehler gibt.

    MfG
    BlackRocket

    ps: falls du mal wieder einen tester brauchst der einen weiblichen server verwendet, sag mir bescheid 😉

  31. Hallo Frank,
    ich bin grad dabei, das Plugin zu testen. Mir ist aufgefallen, dass in der .zip-Datei die Sprachdatei fehlt.

    Viele Grüße
    Franziska

  32. Es ist super, dieses Plugin.

    Anregung: Ich fände es sinnvoll, wenn die kategorien "maybe no spam" und "Pingback" zuoberst auf der liste erscheinen würden, denn diesen beiden Kategorien muss man sich als Administrator ja im Endeffekt etwas widmen, für den Rest gibts den Abfalleimer.

  33. @Dominik:
    Danke für den Tipp, ist umgesetzt, da ich gerade eine Final-Version in Bearbeitung hatte.
    Viel Spass nun mit Version 1.0 und neuen Sprachfiles.

    Wer Lust hat, die pot liegt bei und derzeit ist nur Englsich und Deutsch verfügbar. Danke.

  34. Vielen Dank für dieses großartige Plugin! Leider kommt immer mehr Spam, der auch das ein oder andere normale Kommentar mit unter sich begräbt. CU

  35. Moin!

    Vielen Dank ersteinmal für die viele Arbeit, nicht nur für dieses Plugin. Mir ist nur eine Kleinigkeit aufgefallen: Die aktuellste Version zum Runterladen von hier und auch von wp-plugins.net ist die Version 1.0. Leider ist diese Version aber mit der Nummer 1.1 bei wp-plugins.net referenziert. Das hat zur Folge, dass der Plugin Release Tracker einen Versions-Missmatch ausgibt. Bis ich geblickt habe, dass ich die aktuelle Version nutze, habe ich zwei Versionen runtergeladen und auf meinen Webspace hochgeladen. Mich wundert, dass ich der erste bin, dem das auffällt. Oder irre ich? Zumal du im Kolophon auch von Version 1.1 sprichst, hier aber nur 1.0 zu finden ist.
    Ich bin verwirrt...
    Gruß
    Easy

  36. Richtig, ich hatte die aktuelle Version nicht hochgeladen - sorry. Die meisten Leser ziehen das Plugin bei wordpress.org, dort is tes im SVN gelistet und damit immer die aktuelle Version.
    Habe aber eben die aktuelle Version hochgeladen, also nun auch hier zu haben.

  37. Hallo
    Erst mal Danke für das klasse Plugin.
    Ich bin gerade dabei mir ein Blog einzurichten und teste alles Lokal. Ich verwende WordPress 2.3 und SpamViewer 1.4. Beim Unspam von Einträgen (Trackbacks) ehalte ich folgende Fehlermeldung:
    WordPress database error: [Unknown column 'wp_tb_datatb_comments_ID' in 'where clause']
    DELETE FROM wp_tb_data WHERE wp_tb_datatb_comments_ID = '7'

    Weiter verwende ich Trackback Validator 0.7.1 und Simple Trackback Validation 2.1.

    Gruß Rainer

  38. Hallo,

    ich bekomme beim Kommentarfeld neuerdings folgende Fehlermeldung:
    Wordpress database error: Table 'usr_web710095_1.wp_tb_data' doesn't exist
    SELECT * FROM wp_tb_data WHERE tb_comments_ID='817' AND tb_seen='x'

    WordPress 2.3 mit Captcha Form ProtectWebForm 1.0.1, Live Comment Preview 1.7, Spamviewer 1.5, Subscribe to Comments 2.1.1, Trackback Validator 0.7.1.

    Ich vermute, dass es irgendetwas mit dem Umzug auf den neuen Server zu tun hat, weiß aber nicht was. Bin für jede Hilfe dankbar.

    Gruß,

    Axel

  39. I have a blog with 30,000 spam comments. When I click on the spam item in the manage toolbar, the connection times out.

    I'm guessing this is probably because of all spam. Is there a setting somewhere that I can change so it doesn't time out, either on my browser, or on the server (I have root access).

  40. After changing the paginationCount to a manageable number (100), I clicked on the delete all button. The count of spam went down by 100, but only about 10 of the spam on the page were deleted, there was still 90 of the old spam and 10 new spam shown.

    I don't really know PHP or mysql, but I was looking through the code, and it looks like when the spam is displayed, it is ordered by date, but when the comments are deleted, there is no ordering. Could that be what causes different spam then what is displayed be deleted? Is there an easy fix?

  41. Nach dem Update auf die neueste WordPressversion wird bei mir nur noch eine leere Seite angezeigt, wenn ich den Spamviewer aufrufe. Es werden zwar X als Spam markierte Trackbacks angezeigt, aber sonst nichts mehr. Liegt das am Plugin, oder hat sich bei mir der Fehlerteufel eingeschlichen?

Comments are closed.