Einfacher SPAM Schutz
Das Kontaktformular Contact3 ist für das CMS Bludit zu Quasistandard geworden. Es ist möglich die Google-Captcha mit einzubinden - ich persönlich mag Google-Produkte überhaupt nicht und lehen diese ab. Mit ein paar Zeilen Code in der Datei bl-plugins/contact3/plugin.php, peppen Sie das Plugin für Bludit deutlich auf und bringen Ruhe in Ihr Postfach.
...
320 private function validatePost(){
321
322 //==============================================
323 // Eine Blackliste setzen
324 //==============================================
325 $blacklist = array('sex', 'date', 'babe', 'yandex',
326 'money', 'porn');
327 $fehler = false;
328 foreach ($blacklist as $value) {
329 if (strpos(strtolower($this->message), $value)) {
330 $fehler = true;
331 }
332 }
333 //=============================================
334
335 global $L;
336 if(trim($this->senderName)==='')
337 $error = $L->get('Please enter your name');
338 elseif(trim($this->senderEmail)==='')
339 $error = $L->get('Please enter a valid email address');
340 elseif(trim($this->message)==='')
341 $error = $L->get('Please enter the content of your message');
342 elseif ($this->getValue('gdpr-checkbox') && !$_POST['gdpr-checkbox']) {
343 $error = $L->get('Please accept the privacy policy');
344 }
345 //==============================================
346 // Den originalen ELSEIF ersetzen durch $FEHLER
347 //==============================================
348 //elseif(!$this->reCaptchaResult){
349 elseif($fehler){
350 $error = $L->get('Please check that you are not a robot');
351 }
352 else
353 $error = false;
354 return $error;
355 }
...
Contact
Zeile 322...333 müssen Sie neu eintippen oder aus dem Beispiel oben herauskopieren und in die Methode validatePost() einfügen. Diese Methode ist grundsätzlich mit der Prüfung der Mail beauftragt und Ihr neues Coding ist daher dort gut aufgehoben. Mit diesem Codeabschnitt legen Sie eine Sperrliste ($blacklist) mit Bgeriffen an, mit denen Sie Roboter oder Spam erkennen möchten - ich habe bereits einige populäre Wörter eingetragen, die Sie noch erweitern können. Die Schleife in 328 durchsucht den Mitteilungstext nach Wörtern der Sperrliste und setzt das Ergebnis ($fehler) auf true wenn ein "böses Wort" gefunden wurde.
Zeile 348 ist die originale Implementierung des Captcha von Google an den Sie sich gleich dranhängen können. Ich habe in Zeil 349 den elseif neu aufgebaut, um den Zustand von $fehler auszuwerten, welcher true ist wenn die Schleife oben eines der Sperrwörter aus der Blacklist im Text der Mail entdeckt hat.
Ist im Text der Mail eines der Sperrwörter aus der Blacklist enthalten, dann kann die Mail nicht versendet werden, es kommt die Fehlermeldung aus Zeile 350 (allerdings in deutsch). Bei Bedarf können Sie diese Meldung auch umschreiben. Normalerweise wird sie vom Language-Paket ins deutsche übersetzt, wenn er die neue Meldung nicht im Paket findet, dann gibt Bludit die Meldung aus die Sie im Quellcode vorgegeben haben.