如何在我的自定义模块中使用Joomla recaptcha插件?

Tor*_*tto 24 joomla recaptcha joomla2.5

我已经为我的联系表单创建了一个自定义模块.现在我想在这个模块中使用Joomla recaptcha插件.

知道怎么做到这一点?

Irf*_*fan 46

为了使用joomla默认的recaptcha插件,请按照以下步骤操作 -

1)从http://www.google.com/recaptcha获取重新获取密钥

2)将这些键设置为recaptcha插件,如果不是,则将其激活.

3)将代码放在要显示recaptcha的代码下方

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

//html code inside form tag
<div id="dynamic_recaptcha_1"></div>
Run Code Online (Sandbox Code Playgroud)

4)将此代码放在验证/处理表单的位置

$post = JRequest::get('post');      
JPluginHelper::importPlugin('captcha');
$dispatcher = JDispatcher::getInstance();
$res = $dispatcher->trigger('onCheckAnswer',$post['recaptcha_response_field']);
if(!$res[0]){
    die('Invalid Captcha');
}
Run Code Online (Sandbox Code Playgroud)

//对于Joomla 3.x

$post = JFactory::getApplication()->input->post;
$dispatcher = JEventDispatcher::getInstance();
Run Code Online (Sandbox Code Playgroud)

  • 上面的代码在Joomla 3.5中停止工作,因为ReCaptcha插件代码已更改。在此处查看更多详细信息:http://joomla.stackexchange.com/questions/16078/my-captcha-stopped-working-after-upgrading-to-joomla-3-5/ (2认同)