我在joomla admini登录部分使用Google reCAPTCHA,验证工作正常。
将加密验证添加到administrator/components/com_login/models/login.php
$privatekey = "myprivatekey";
$resp = recaptcha_check_answer (
$privatekey,
$_SERVER["REMOTE_ADDR"],
JRequest::getVar('recaptcha_challenge_field', '', 'method', 'recaptcha_challenge_field'),
JRequest::getVar('recaptcha_response_field', '', 'method', 'recaptcha_response_field')
);
if (!$resp->is_valid) {
//die('Incorrect Captcha...');
}else{
$credentials = array(
'username' => JRequest::getVar('username', '', 'method', 'username'),
'password' => JRequest::getVar('passwd', '', 'post', 'string', JREQUEST_ALLOWRAW)
);
$this->setState('credentials', $credentials);
}
我应该使用什么代替//die('Incorrect Captcha...');
来输出无效的验证码?登录页面出错?
答案 0 :(得分:3)
试试这个 -
$app = JFactory::getApplication();
$app->enqueueMessage('Incorrect Captcha...', 'error');
$app->redirect(JURI::base());
答案 1 :(得分:2)
当输出无效时,您可以使用JError
来显示错误。
例如:
JError::raiseError( JText::_( 'Invalid Captcha' ));
有关更多方法,您可以看到此JError