Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在我的自定义模块中使用Joomla recaptcha插件?_Joomla_Recaptcha_Joomla2.5 - Fatal编程技术网

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

如何在我的自定义模块中使用Joomla recaptcha插件?,joomla,recaptcha,joomla2.5,Joomla,Recaptcha,Joomla2.5,我已经为我的contactus表单创建了一个自定义模块。现在我想在这个模块中使用Joomla recaptcha插件 你知道如何做到这一点吗?这是从: 下载它 登录以获取reCAPTCHA公钥和reCAPTCHA私钥 安装、启用和输入公钥和私钥 在HTMLmodule中,在需要显示验证码的位置插入{captcha} 一般情况下,请插入 global $mainframe; $mainframe->triggerEvent('onCaptchaDisplay'); 显示验证码 如果启用了

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

你知道如何做到这一点吗?

这是从:

  • 下载它

  • 登录以获取reCAPTCHA公钥和reCAPTCHA私钥

  • 安装、启用和输入公钥和私钥

  • 在HTMLmodule中,在需要显示验证码的位置插入
    {captcha}

  • 一般情况下,请插入

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

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

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

  • 要使用joomla默认的recaptcha插件,请遵循以下步骤-

    1) 从获取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>
    
    //对于Joomla 3.x

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

    继Irfan的代码之后,我还必须执行以下操作才能显示验证码:

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

    JHtml::_('behavior.keepalive');
    
    显然,它包括mootools库


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

    谢谢您的回复,但我不想使用任何外部插件。第一个链接已过时(现在:),我不知道第4步中的代码放在哪里。如果我使用的是formmail.php,那会是放置它的地方吗?我很困惑,因为谷歌的说明说要把它放在他们提供的一个名为verify.php的文件中。把这段代码放在model或controller中。这取决于你为什么使用表单。如果你不保存数据,而是通过电子邮件发送表单数据,那么在发送数据之前验证代码是否正确。基本上,这将检查输入的代码是否正确。上面的代码在Joomla 3.5中停止工作,因为ReCaptcha插件代码已更改。在这里查看更多详细信息:@Irfan我可以请你看看这个吗:?
    JHtml::_('behavior.keepalive');