Einfacher SPAM Schutz im Kontaktformular

Wenn Sie das Bludit-Plugin Contact3 nutzen, können Sie in diesem Plugin eine einfache und wirkungsvolle Blackliste einbauen, die den Inhalt Ihrer Mail prüft

Inhalt

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.


FlightCMS
2023-12-21
Konstanten
post
0