Zum Inhalt springen

ve_guestbook + captcha (nicht sr_freecap!)

Erstellt am 5. April 2007 · 3 Antworten · letzte Antwort am 11. Juni 2007

Tags: Frage

tobilot ·

Hallo
Kann ich denn auch die captcha Extension statt der sr_freecap-Extension für das ve_guestbook verwenden? Ich weiss, ve_guestbook ist vorbereitet für sr_freecap und beides funktioniert einwandfrei, aber ich verwende für das Kontaktformular halt die captcha Ext und irgendwie gefällt die mir besser u.a. auch wg. der Lesbarkeit.
Muss ich ins ve_guestbook template nur einen passenden Marker einbauen (z.B. beim Kontaktformular abgucken) oder muss das noch weiter gehen in Richtung Änderung von php-files?
Hat das schon jemand erfolgreich gemacht?
Würde mich über eine Antwort freuen
Gruß
Tobias

CrocodileR ·

Fast ganz einfach. Ich musste in der Datei class.tx_veguestbook_pi1.php in ungefähr Zeile 490 sowie ca. 613 (aktuelle ve_guestbook-Version) folgendes hinzufügen:

$substituteArray = array('firstname', 'surname', 'email', 'homepage', 'place', 'entry', 'entrycomment', 'submit', 'captcharesponse', 'captcha');

Also die letzten beiden Einträge mit dem captcha hinzufügen.

Außerdem in ca. Zeile 622 nach $markerArray['###ActionURL###'] = url;

## CAPTCHA PLUGIN #########################################################################################################################################################
if (t3lib_extMgm::isLoaded('captcha'))  {
#creating any random string to workarround browser caching of old captcha image
        $anything = date("d.m.Y-H:i:s",time());
        $captchaHTMLoutput = '<img src="'.t3lib_extMgm::siteRelPath('captcha').'captcha/captcha.php?'.$anything.'" alt="No Spam!" />';
} else {
        $captchaHTMLoutput = 'a';
}
$markerArray['###CAPTCHA_INSERT###'] = $captchaHTMLoutput;


## CAPTCHA PLUGIN #########################################################################################################################################################

Und in Zeile ca. 917 (nach function checkForm) folgendes einfügen:

## CAPTCHA PLUGIN #########################################################################################################################################################
# Getting the Captcha String #################
if (t3lib_extMgm::isLoaded('captcha'))  {
        session_start();
        $captchaStr = $_SESSION['tx_captcha_string'];
        $_SESSION['tx_captcha_string'] = '';
} else {
        $captchaStr = -1;
}
# Evaluating the captcha string
#if ($this->postvars['captcha_response'] != $captchaStr) {
if (strcasecmp($this->postvars['captcha_response'], $captchaStr) != 0) {
$error .= '<li>Eingabe des Antispamcode war leider falsch, bitte nochmal probieren!</li>';
}
## CAPTCHA PLUGIN #########################################################################################################################################################

Hoffe, das funktioniert so bei dir.

tobilot ·

Das editieren des php-files hat leider nicht geklappt, keine Ahnung, warum. Habe aber dann das script aus einem anderen posting (#28025) per copy and paste genommen und da hats dann geklappt. Naja, wahrscheinlich hatte ich irgendeine Kleinigkeit übersehen (Schussel)
Trotzdem danke für die Antwort.
Gruß
Tobias

voneynern ·

Anstatt hier Code-Schnipsel zu posten, einfach mal den Autor des guestbooks kontaktieren - dann könnte dieser dies in einer neuen Version mit einbauen. Wozu sonst gibt es Open Source? ;-)

Udo