Sie befinden sich hier: TYPO3 / Anleitungen / Captcha in ke_smallads einbauen
Donnerstag, 14.12.2017

Spamschutz für ke_smallads: Captcha einbinden

Mit der Extension ke_smallads können Besucher der Website Kleinanzeigen aufgeben, lesen und durchsuchen. Die Erweiterung ist recht flexibel und leistungsstark, allerdings fehlt ein CAPTCHA-Modul zum Schutz vor Spammern. 

Voraussetzungen

In diesem Text geht es um die Kombination zweier Erweiterunge: captcha und ke_smallads. Natürlich sollten diese beiden installiert sein :-)

Prinzipiell funktioniert es übrigens genauso mit anderen Captcha-Extensions; diese Anleitung sollte daher auch für diese mit kleinen Anpassungen funktionieren. 

TypoScript

ke_smallads wird fast vollständig über TypoScript konfiguriert. Daher baue ich das Captcha-Feld auch hier ein, damit der Code übersichtlich und wartbar bleibt.

Wir benötigen für das Captcha zwei neue Elemente: das Captcha-Bild und ein Eingabefeld, in das der User den Captcha-Code eintragen kann. 

plugin.tx_kesmallads_pi1 {   
   CaptchaWrong.value = Der CAPTCHA-Code war leider falsch.   
   smalladForm {           
       #Captcha
       65 = TEXT      
       65.value = <img src="/typo3conf/ext/captcha/captcha/captcha.php" alt="Captcha" /> 

       66.type = captcha=input,6           
       66.required = 1     
       66.label = Captcha-Zeichenfolg 
   }
}

Anpassung in der Extension ke_smallads

Damit auch die Gültigkeit des Captcha überprüft wird, muss nun noch eine kleine Änderung in der Extension ke_smallads selbst gemacht werden. 

In der Methode processFormforNewAd wird der Check eingebaut:

// Check if the captcha value is correct
session_start();
$captchaStr = $_SESSION['tx_captcha_string'];
       
if ($this->postVars['captcha'] != $captchaStr) {
    return $lcObj->TEXT($this->conf['CaptchaWrong.']);
}

Zunächst wird mit session_start() der Sitzung beigetreten, die das Captcha-Modl bei der Generierung des Bildes dankenswerterweise bereits geöffnet hat (bzw. der bestehenden Sitzung einen String hinzugefügt hat).

Anschließend wird überprüft, ob der Wert, den der User in das captcha-Feld eingetragen hat, identisch ist mit dem Referenzwert, den das Captcha-Modul in die Sitzungsvariable $_SESSION['tx_captcha_string'] geschrieben hat. Falls nein, wird eine Fehlermeldung ausgegeben und die Verarbeitung beendet - ansonsten machen wir wie gewohnt weiter und tragen die Kleinanzeige in die Datenbank ein.

Das war's schon - mit kleinem Aufwand hat damit ke_smallads die Captcha-Funktionalität erhalten.

Keine Kommentare

Kommentar hinzufügen

* - Pflichtfeld

*




CAPTCHA-Bild zum Spam-Schutz
Wenn Sie das Wort nicht lesen können, bitte hier klicken.
*
*