Hallo an alle,
ich bin kein Progger, darum weiss ich auch nicht, ob der Quelltext stimmt oder das, was er angeblich tun soll, auch macht!!!
Ich habe das hier auf
Homepage-Forum.de gesehen:
QUOTE Einsatzgebiet:
private Gästebücher in deutscher Sprache
Funktionsweise:
Prüft die Eingaben in der Textarea nach den gängigsten Wörtern der Spammer.
Features:
Rauswurf aus dem Gästebuch nach einer angegebenen Menge an Fehlversuchen.
Es sind insgesamt 3 Schritte notwendig.
1. Schritt
Ergänzung des Formulares um 2 versteckte Felder.
Einfach an das Ende des Formulares kopieren.
HTML-Code:
QUOTE <input type="hidden" name="pruefung" value="<? echo $pruefung;?>">
<input type="hidden" name="eintragen" value="1" />
Das 1. Element zählt die Fehlerversuche beim abschicken des Formulares
Das 2. Element ist eine Kontrollvariable zum Ausführen des eigentlichen Codes
An die gewünschte Stelle im HTML-Bereich den folgenden Code setzen.
Er gibt den Hinweistext aus, wenn Spam erkannt wurde.
PHP-Code:
QUOTE <?php echo $spamtext; ?>
2. Schritt
Nun muß der Ursprüngliche Code des Gästebuches in eine weitere Abfrage gesetzt werden.
PHP-Code:
QUOTE if ($eintragen == 1)
{
eigentlicher Code
}
3. Schritt
Den folgenden Code an den Anfang der Seite kopieren, noch bevor die HTML Auszeichnung beginnt.
Anpassen des Namens der Textarea und evtl. die Rauswurf_url.
PHP-Code:
QUOTE if (isset($_POST["pruefung"]))
{
// Postvariablen aufarbeiten
$pruefung = $_POST["pruefung"];
$eintragen = $_POST["eintragen"];
// Hier den Namen der Textarea anpassen
// nur rechts im $_POST-Bereich das Wort message ersetzen
$message = stripslashes($_POST["message"]);
// Nach wieviel Fehlversuchen soll der Schreiber rausgeworfen werden ?
// Der Poster hat z.B. 3 Fehlversuche, beim 4. geht es ab.
// Das greift nur, wenn im Text ein Wort aus der Badword Liste vorhanden ist.
$rauswurf = 3;
// Wohin soll er rausgeworfen werden ?
$url_rauswurf = "http://www.antispam.de/";
// Hinweistext für den Spammer
$spamhinweis = "No Spam please !!!";
// Die Liste kann beliebig erweitert werden
$badwords = "thanks,good,great,thank,tnx,look,looking,perfect,very,nice,gay";
// Rauswurf wenn oben angegebene Menge an Postings erreicht wurde
if ($pruefung == $rauswurf): header("location:".$url_rauswurf.""
; endif;
$wordtest = explode(",",$badwords);
foreach ($wordtest as $value)
{
if (stristr($message,$value)):
$eintragen = 0;
$spam = 1;
endif;
}
if ($spam == 1):
if (empty($pruefung)) $pruefung = 1; else $pruefung = bcadd($pruefung,1,0);
$spamtext = $spamhinweis;
endif;
} // Ende $_POST["pruefung"]
Das war es auch schon.
Wenn es nach dem Einbau Fehlermeldungen gibt, liegt es wahrscheinlich an einem Fehler in der Klammersetzung.
Die Badword Liste ist nur ein kleiner Baustein zu einem Spamsicheren Gästebuch, aber immerhin ein erster Schritt der schon eine Menge bringt.
Der Einsatz ist nur sinnvoll, wenn man ansonsten keine englischen Einträge hat.
Ich habe auf 2 verschiedenen HP´s dasselbe GB im Einsatz.
Eines mit und eines ohne diese Liste.
Das eine wird weiter zugespammt und beim anderen hatte ich seitdem nicht einen einzigen Spameintrag.
Dieses Script ist auch problemlos im Kontaktformular einsetzbar.
Quelle:
[Tutorial | PHP] Badword Liste für Gästebuch - Homepage-Forum.de geschrieben von
Marco >> User auf Homepage-Forum.de
Meine Frage: kann man das auch Umschreiben für ein Forum? Oder kann man das hier 1:1 übernehmen?
Vielleicht ist es ja auch ein Denkanstoss für andere.
besten Gruss Björn
PS: als Anregung für Bad-Words:
Schimpfwoerter.de
Nachtrag: hier sind mal 2 Listen. Nur Überflogen, keine Ahnung, ob sie was wert sind:
http://www.analytictech.com/mb870/bwfldata.htm
http://www.delphipraxis.net/topic37248.html