Jan 23

Ich habe gerade das Kontaktformular eines Mailformplus-Templates um ein Captcha bereichern wollen. Mit dieser kleinen Anleitung [PDF] erschien mir das auch ganz einfach. Das Problem war allerdings, dass das Bild zwar im HTML-Code war, aber nicht im Browser sichtbar. Nach dem Aufruf der PHP-Datei die als Quelle für das Bild angegeben ist, sah ich zahlreiche PHP Notices. Der Extensionautor scheint die bei sich nicht angeschaltet zu haben.

Um das trotzdem nutzen zu können, muss einfach ein „@“ vor die ganzen define- und require-Anweisungen geschrieben werden. Das bewirkt, dass Fehlermeldungen unterdrückt werden. Nicht wirklich schön, da es sich hier aber nicht um Fehler, sondern nur um Hinweise handelt, nicht weiter tragisch.

Am Ende sollte der Code also so aussehen:

@define(PATH_this, dirname(__FILE__).'/');

@define(PATH_site, dirname(dirname(dirname(dirname(dirname(__FILE__))))).'/');

@define(PATH_typo3conf, PATH_site.'typo3conf/');

@define(PATH_t3lib, PATH_site.'t3lib/');

@define(PATH_tslib, PATH_site.'typo3/sysext/cms/tslib/');

@require_once(PATH_t3lib.'class.t3lib_div.php');

@require_once(PATH_t3lib.'class.t3lib_extmgm.php');

@require_once(PATH_t3lib.'config_default.php');

Nachdem dieses Problem nun behoben war, viel mir noch auf, dass die Zeichen auf dem Captcha abgeschnitten waren. Um das zu beheben, geht man einfach in den Extension Manager und klickt in der Liste der installierten Extensions auf die Captcha-Extension. Allerdings nicht auf die kleine Kugel mit dem Minus vorne, sondern auf den Namen. Es erscheint ein Formular mit einigen Einstellungsmöglichkeiten. Neben Farbe und anderen Eigenschaften, findet sich hier auch der Wert für die Breite des Bildes. Da Standardmäßig 5 Zeichen gerendert werden, sollte die Breite von anfangs 95 auf etwa 130px angehoben werden. Ich habe zudem noch den Abstand der Zeichen zueinander verringert, um ein optisch besseres Ergebnis zu erzielen.

Dann noch einmal Cache löschen und refresh: Voila, da ist mein wunderschönes Formular MIT Captcha.

Hinweis: Bei anderen Extensions geht der Workaround mit den „@“s natürlich auch.

2 Antworten zu “Captcha kommt nicht!”

  1. filewalker sagt:

    Herzlichen Dank für diese Hinweise. Hatte das gleiche Problem und bin nun rundum glücklich!
    Thx a lot

  2. Christian sagt:

    Hallo,

    das Problem hat mich ebenfalls genervt. Damit nicht alle Fehler unterdrückt werden, genügt es, wenn man zunächst bei allen defines die Konstanten in Hochkommas setzt und lediglich vor dem Include von config_default.php ein @ setzt. Das ist zwar auch nicht schön, jedoch ein wenig hübscher als dein Tipp 🙂

    define(‚TYPO3_MODE‘, ‚FE‘);
    define(‚PATH_this‘, dirname(__FILE__).’/‘);
    define(‚PATH_site‘, dirname(dirname(dirname(dirname(dirname(__FILE__))))).’/‘);
    define(‚PATH_typo3conf‘, PATH_site.’typo3conf/‘);
    define(‚PATH_t3lib‘, PATH_site.’t3lib/‘);
    define(‚PATH_tslib‘, PATH_site.’typo3/sysext/cms/tslib/‘);
    require_once(PATH_t3lib.’class.t3lib_div.php‘);
    require_once(PATH_t3lib.’class.t3lib_extmgm.php‘);
    @require_once(PATH_t3lib.’config_default.php‘);

Einen Kommentar schreiben