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

时间:2012-10-11 12:53:39

标签: joomla recaptcha joomla2.5

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

知道如何完成这项工作吗?

3 个答案:

答案 0 :(得分:44)

要使用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>

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');
}

//适用于Joomla 3.x

$post = JFactory::getApplication()->input->post;
$dispatcher = JEventDispatcher::getInstance();

答案 1 :(得分:2)

跟进Irfan的代码,另外我必须执行以下操作才能显示验证码:

将以下内容添加到模板代码中。

JHtml::_('behavior.keepalive');

显然它包括mootools库。

似乎添加了事件domready,但事件仅在使用mootools库时触发。所以只需检查你的html源代码,看看是否正在使用mootools。我可能完全错了,但希望我的解决方案有所帮助。

答案 2 :(得分:0)

来自:http://jw-extension.net/joomla-how-to/138-an-easy-way-insert-captcha-in-any-module-or-component-of-joomla.html

  1. 下载

  2. 登录http://www.google.com/recaptcha获取reCAPTCHA公钥和reCAPTCHA私钥

  3. 安装,启用并输入公钥和私钥

  4. 在HTML模块中插入{captcha},您需要在其中显示验证码

  5. 一般情况下请插入

    global $mainframe;
    $mainframe->triggerEvent('onCaptchaDisplay');
    
  6. 显示验证码。

    1. 如果启用了使用reCAPTCHA选项自动验证,插件将检查验证码验证数据是否存在,然后自动连接到reCAPTCHA并要求确认。此方法在每个页面加载时需要更多的系统资源,但如果您有许多页面需要验证码验证,则非常有用。 如果您不想全局启用验证码验证,但只需要几页,则可能需要使用reCAPTCHA选项禁用自动验证。要验证用户响应,请将以下PHP代码插入到各个Joomla的控制器文件中!需要验证码验证的扩展程序:

      global $mainframe;
      $mainframe->triggerEvent('onCaptchaConfirm');