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