我已经激活了我的 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 以便即使我离线也能显示至少验证码。