2012-04-06 12 views
0

Ich habe ein einfaches Kontaktformular mit mehreren erforderlichen Feldern, die gut funktioniert. Ich versuche, reCaptcha dem Formular für zusätzlichen Spamschutz hinzuzufügen.CodeIgniter reCaptcha und Form_validation Klasse

Ich habe die ReCaptcha auf dem Formular korrekt angezeigt, ich habe meine Schlüssel installiert. In meinem Controller kann ich die recaptcha_check_answer Methode aufrufen und gültige Antworten zurück erhalten. Ich habe alle Dateien installiert und korrekt konfiguriert, da ich die Methoden aus der Klasse recaptcha verwenden und gute Antworten erhalten kann.

Mein Problem ist, dass ich möchte eine ungültige ReCaptcha einen CI-Formular_validation Fehler auslösen, aber ich habe viel Zeit auf diese und kann nicht ausgelöst werden. Ich bin ziemlich neu in CI, entschuldige meine Unwissenheit, wenn das etwas Einfaches ist.

Ich habe versucht, einen form_validation Fehler zu werfen, wenn die is_valid Antwort zurück NULL kommt. Wenn NULL dann habe ich versucht, die folgendes zu tun:

$this->form_validation->set_message('recaptcha_response_field', 'reCaptcha', lang('recaptcha_incorrect_response')); 
echo form_error('recaptcha_response_field'); 

Hier ist, was die reCaptcha API Antworten wie die für gültige und ungültige captcha aussehen:

Valid = stdClass Object ([0] => is_valid [1] => error [is_valid] => 1) 
Invalid = stdClass Object ([0] => is_valid [1] => error [is_valid] => [error] => incorrect-captcha-sol) 

Hier ist der Code, den ich in meinem Controller verwenden:

Ich habe die Umleitungen und Kontakt-E-Mail am Ende des Formulars auskommentiert, bis ich dieses Problem beheben kann.

Vielen Dank im Voraus für Ihre Hilfe!

Antwort

0

Ich habe die Funktion Callback_ in der Bibliothek form_validation verwendet. Richten Sie eine zusätzliche Funktion innerhalb des Controllers ein, die den API-Aufruf ausgelöst hat, und wenn das Captcha nicht bestanden wurde, wird ein validation_error ausgelöst.

Verwandte Themen