Spam Kommentare bei den Tutorials von PinkPearl |
Das "unsichtbare" Feld
Unser Ziel ist es, sogenannte Bots davon abzuhalten, sinnlose Kommentare auf unserer Website zu hinterlassen. Dafür müssen wir die Bots von einem richtigen User unterscheiden. Und was kann ein User nicht? Genau! Ein nicht sichtbares Feld ausfüllen. Der Bot weiß natürlich nicht, dass es dieses Feld nicht wirklich gibt und füllt es aus. Und genau da geht er uns dann in die Falle.
Und das Ganze ist auch noch einfach und schnell realisiert! Öffnet eure PHP Datei in der sich das Formular befindet. Dieses Formular erweitert ihr nun um ein weiteres Feld - ich nenne es mal "firstname".
Hinweis: ihr solltet das Feld nicht "bot" oder so ähnlich nennen, denn einige Bots wissen dann schon was los ist und füllen das Feld nicht aus.
<input class="firstname" type="text" name="firstname" id="firstname" size="20" />
Das Ganze sieht dann also zum Beispiel so aus:
In meiner style.css definiere ich noch eine Klasse namens "firstname" und verstecke in dieser mein Feld, indem ich den z-index sehr niedrig setze (damit alle weiteren Elemente wie z.B. der Content darüber liegen). margin-top sorgt dafür, dass es keine Große Lücke im Formular gibt:
.firstname{
z-index: -1;
position: relative;
margin-top: -25px;
}
Wichtig ist auch, dass ihr all euren Feldern einen tabindex gebt. Das Feld "firstname" muss den letzen Tabindex haben (in diesem Fall die "7"). Auch der "submit Button" muss einen Tabindex bekommen, damit das neue Feld wirklich an letzter Stelle ist und der Besucher nicht aus versehen per "Tab" Taste auf das versteckte Feld kommt.
Einfach auf das Bild klicken um es "groß" zu sehen |
Zum Schluss müssen wir nun noch vor dem Speichern das Feld prüfen. Dazu fügen wir dort, wo auch der captcha geprüft wird, einfach folgende Prüfung dazu:
$_POST['firstname'] == ""
Das Ganze sieht dann so aus:
Tja und das war´s auch schon!
Und das funktioniert?
Ihr könnt das Ganze nachdem ihr es bei euch hochgeladen habt natürlich auch testen. Dazu füllt ihr ganz normal die Felder eures Formulares aus. Wählt die Felder aber nicht mit eurer Maus an, sondern wechselt sie per "Tab Taste" eurer Tastatur. Habt ihr schließlich den captcha ausgefüllt und steht mit der Tab Taste auf dem "abschicken" (Sumbit) Button, drückt noch einmal Tab. Ihr befindet euch nun auf dem "unsichtbaren" Feld. Tippt jetzt einfach irgendwas ein (ein Buchstabe genügt schon) und drückt dann mit eurer Maus auf "abschicken". Wenn ihr alles richtig gemacht habt dürfte nun dieser Eintrag nicht in eurer Datenbank gespeichert werden.
Natürlich gibt es auch noch andere Möglichkeiten um Spam Kommentare zu verhindern. Habt ihr denn Interesse mehr darüber zu erfahren?
Bei Problemen oder Fragen könnt ihr hier gerne ein Kommentar hinterlassen oder mir eine Mail schicken.
Super Tutorial, Lulu.
AntwortenLöschenKommt mir echt gelegen.
LG Katjana
Tolles Tutorial. Werd ich mal bei Zeiten verwenden, sofern ich mir ein ACP nochmal anlache. xD Aber es ist sehr hilfreich für solche Leute ebend.Wobei es nicht bei Cutenews zu gebrauchen ist. (Für die Leute die es verwenden)
AntwortenLöschenWerde ich wohl nicht hinkriegen, aber mal gucken .... danke jedenfalls, dass es gegen die 30 Spams pro Tag vielleicht doch ein Mittel gibt, wobei komischerweise diese nicht im Blog, sondern nur in meinem mail-Fach landen ....
AntwortenLöschenLG von stempellotta Annelotte