我在我的项目中使用https://github.com/appleboy/CodeIgniter-reCAPTCHA库。我想在未输入recaptcha或无效的recaptcha时向表单添加错误消息...
我设置的其他字段......
$this->form_validation->set_rules('txtPassword', 'Password', 'trim|required|min_length[6]');
$this->form_validation->set_message('min_length', '%s: should have %s characters');
但是在recaptcha中没有名字...所以不知道如何在验证失败时显示验证错误...
答案 0 :(得分:2)
如文档中所述,
$recaptcha = $this->input->post('g-recaptcha-response');
$response = $this->recaptcha->verifyResponse($recaptcha);
$response
参数将返回true
或false
。您可以使用codeigniter documentation
或者,如果你想坚持使用codeigniter的表单验证,那么你就是这样做的。
$this->form_validation->set_rules('g-recaptcha-response', 'recaptcha validation', 'required|callback_validate_captcha');
$this->form_validation->set_message('validate_captcha', 'Please check the the captcha form');
您需要创建一个方法validate_captcha,它将对captcha api进行file_get_contents调用,并根据它返回true或false。
function validate_captcha() {
$captcha = $this->input->post('g-recaptcha-response');
$response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=your secret key here &response=" . $captcha . "&remoteip=" . $_SERVER['REMOTE_ADDR']);
if ($response . 'success' == false) {
return FALSE;
} else {
return TRUE;
}
}
希望这有帮助。