Hallo,
um auf meiner Plattform das reCAPTCHA nutzen zu können, habe ich mir folgenden EventListener geschrieben:
Alles anzeigen
Das reCAPTCHA wird auch richtig angezeigt. Wenn dies aber als richtig anerkannt wurde, wird das WCF Captcha nochmal angezeigt.
um auf meiner Plattform das reCAPTCHA nutzen zu können, habe ich mir folgenden EventListener geschrieben:
Quellcode
- public function execute($eventObj, $className, $eventName) {
- if ($this->useCaptcha === null) {
- if (isset($eventObj->useCaptcha)) {
- $this->useCaptcha = $eventObj->useCaptcha;
- $eventObj->useCaptcha = false;
- }
- else {
- $this->useCaptcha = true;
- }
- }
- if ($this->useCaptcha) {
- switch ($eventName) {
- case 'validate':
- $this->resp = recaptcha_check_answer($this->privateKey, $_SERVER["REMOTE_ADDR"], $_REQUEST["recaptcha_challenge_field"], $_REQUEST["recaptcha_response_field"]);
- if($this->resp->is_valid) {
- $this->useCaptcha = false;
- } else {
- $this->error = $this->resp->error;
- }
- break;
- case 'assignVariables':
- WCF::getTPL()->assign('captcha', recaptcha_get_html($this->publicKey, $this->error));
- break;
- }
- }
- }
Das reCAPTCHA wird auch richtig angezeigt. Wenn dies aber als richtig anerkannt wurde, wird das WCF Captcha nochmal angezeigt.