0

reCAPTCHAのキーをアクティブにして、次のコードを使用して実装しました。

形:

<?php
JPluginHelper::importPlugin('captcha');
$dispatcher = JDispatcher::getInstance();
$dispatcher->trigger('onInit','dynamic_recaptcha_1');
?>

<form ............>
.............
<div id="dynamic_recaptcha_1"></div>
<input type="hidden" name="recaptcha_response_field">
</form>

次に、コントローラーでキャプチャを次のように検証します。

 $capatcha = JRequest::getVar('recaptcha_response_field', 'POST');

 JPluginHelper::importPlugin('captcha');
 $dispatcher = JDispatcher::getInstance();
 $res = $dispatcher->trigger('onCheckAnswer',$capatcha);

 if(!$res[0]){
    $errors['captcha'] = "Invalid Captcha";
 }

問題は、正しいキャプチャ値を指定しても、無効なキャプチャ通知が表示されることです。

さらに、ここでは何も変更/カスタマイズできないため、コンポーネントにrecaptchaを統合するアプローチに納得していないと言わなければなりません<div id="dynamic_recaptcha_1"></div>。だから、誰かが私にrecaptchaをjoomlaコンポーネントに統合するためのより良いアイデアをくれたら嬉しいです。インターネットに接続していないと、キャプチャ統合の方法が機能しないことがわかりました。そこで、libcaptcha.phpを使用して、オフラインの場合でも少なくともキャプチャが表示されるようにします。

4

1 に答える 1

0

今は正常に動作しています。問題はにありました<input type="hidden" name="recaptcha_response_field">。なぜそれを使ったのかわかりません。そのフィールドの行を削除したところ、問題なく動作しています。

しかし、私はそれを制御できないため、recaptcha の統合についてはまだ確信が持てません。コンポーネントにキャプチャを実装するためのより良いアイデアを誰かに教えていただければ幸いです。私はjformを使用していないことに注意してください。

于 2013-02-01T01:44:36.520 に答える