即使输入有效,reCAPTCHA 验证也会返回无效


recaptcha validation returns invalid even after valid entry

我已经激活了我的验证码的密钥,然后使用以下代码实现了它:

形式:

<?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这样即使我离线,至少也会显示验证码。

现在它工作正常。 问题出在<input type="hidden" name="recaptcha_response_field">. 我不知道我为什么要使用它。 我删除了该字段的行,现在它工作正常。

但是我还不相信 recaptcha 集成,因为我无法控制它。 如果有人能给我一个更好的主意在组件中实现验证码,我将不胜感激。 请注意,我没有使用 jform。