即使在有效输入后,recaptcha验证也会返回无效

时间:2013-01-31 19:26:03

标签: php joomla recaptcha

我已经为我的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,以便即使我离线也会显示至少验证码。

1 个答案:

答案 0 :(得分:0)

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

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