我有我的想法上的验证码是如何工作的Codigniter。我无法解释给你听清楚,但我希望你能理解下面这个代码:
添加到您的配置文件
#google reCaptcha
$config['recaptcha_sitekey'] = 'put site key'; //Recaptcha Site key
$config['recaptcha_secretkey'] = 'put secret key'; //Recaptcha Secret Key
将此代码添加到您的验证表单
$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');
和不忘记将此添加到验证码所在的控制器中
//ADDITIONAL CODES
function validate_captcha() {
$captcha = $this->input->post('g-recaptcha-response');
$response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$this->config->item('recaptcha_sitekey')."&response=" . $captcha . "&remoteip=" . $_SERVER['REMOTE_ADDR']);
if ($response . 'success' == false) {
return FALSE;
} else {
return TRUE;
}
}
A DD这个代码的形式,其中的reCAPTCHA会出现
<div class="g-recaptcha" data-sitekey="<?php echo $this->config->item('recaptcha_sitekey') ?>"></div>
而且不`吨忘记的Javascript
<script src="https://www.google.com/recaptcha/api.js"></script>
如果你想从主页面中出现两次验证码模态将此代码添加到您的模式
<script>
createRecaptcha();
function createRecaptcha() {
grecaptcha.render("captcha", {sitekey: "<?php echo $this->config->item('recaptcha_sitekey') ?>", theme: "light"});
}
</script>
添加在您想验证码会出现这个代码
<div id="captcha"></div>
这是我所能做的^ _^
演示:https://www.waraywarayako.ph/
好吧,我有一个建立已,但我不知道如何与表单的其余产品。有一个名称字段,电子邮件,电话号码 - 这些被检查以查看是否有任何内容,我需要的条件也从recaptcha代码中获得价值。我可以复制$ this-> load->库函数吗?此外,我没有任何名为helper的文件夹或该非易失性文件夹中名为form的文件 – CQM 2011-04-08 23:19:46
表单助手是[内置助手](http://codeigniter.com/user_guide/helpers/form_helper.html)。我得到的印象你不明白[表单验证](http://codeigniter.com/user_guide/libraries/form_validation.html)类是如何工作的。你需要设置你的规则,比如'$ this-> form_validation-> set_rules('email','Email','required');'如果它们全部验证,那么'$ this-> form_validation-> run()'将返回true。这些文档通过示例对其工作原理进行了很好的解释。 – akpb 2011-04-10 01:32:29
好的。所以我下载了代码。将所有文件移到适当的文件夹中。在config/recaptcha.php文件中设置键。然后,我有我的表单提交逻辑,我把$ this-> form_validation-> run()函数。然后在HTML中我做了什么?我需要显示用户输入的验证码。我看到谷歌的代码将php recaptcha添加到非代码点火器文档中,但我不确定哪些部分是相关的。我不知道我应该如何打电话给特定的文件。现在我有 – CQM 2011-04-12 19:52:05