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を使用して、オフラインの場合でも少なくともキャプチャが表示されるようにします。