经过许多小时的尝试和搜索,以解决与验证码问题和几次失败的尝试解决的问题,我决定寻求您的帮助,我有一个网站在Joomla 2.5我有一个新用户的自定义注册表,我想添加验证码机制,在这里我做了什么(我发现它在stackoverflow,但我有一些问题)。到目前为止,我做了以下几点:
1)我启用了capcha-recaptcha插件,并从google captcha输入私钥和站点密钥
2)我在全局配置中将captcha-Recaptcha设置为默认captcha
3)在我的文件template\mytemplate\html\mod_login\default.php中
I enter the following code which I found here in stackoverflow
//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>到目前为止,它显示了验证码图像和输入框,但当我按下提交按钮时,我收到了无效的令牌
我怀疑这与它应该验证/处理表单的以下代码部分有关
$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中,我应该在哪个文件中插入验证代码?我已经在提交按钮中尝试过: template\mytemplate\html\mod_login\default.php
但是什么都没有,我也试过了,在com_users\controllers\registrattion.php上还是没有什么想法,我应该在哪里插入这部分代码?才能让它工作吗?
提前为您腾出时间!!
向您致敬,吉姆
发布于 2017-05-09 01:18:23
编辑的答案
从https://forum.joomla.org/viewtopic.php?t=833213尝试下面的代码
$app = JFactory::getApplication();
$captchaResponse = JRequest::get('recaptcha_response_field');
JPluginHelper::importPlugin('captcha');
$dispatcher = JDispatcher::getInstance();
$res = $dispatcher->trigger('onCheckAnswer',$captchaResponse);
if(!$res[0])
{
// Invalid captcha
$app->redirect(JRoute::_('index.php?option=com_users&view=login', false));
return false;
}原始答案
确保您使用的是2.5系列的最新版本。最初的recaptcha插件无法工作,因为谷歌将他们的API脚本位置从recaptcha.net改为google.com/recaptcha。您可以打开recaptcha文件进行快速检查。
https://stackoverflow.com/questions/43853400
复制相似问题