我已经创建了一些用于将数据插入到数据库中并用于检查数据是否从人发送的表单我已经使用了已经集成到CI中的CAPTCHA。CodeIgniter验证码
这是我的控制器:现在
$checkrules = array(
'img_path' => realpath(APPPATH . '../upload/checking/img') . '/',
'img_url' => base_url() . 'upload/checking/img/',
'font_path' => realpath(APPPATH . '../upload/checking/font.ttf'),
'img_width' => 150,
'img_height' => 30,
'expiration' => 7200
);
$check = create_captcha($checkrules);
$data['checkimg'] = $check['image'];
$this->form_validation->set_rules('name', 'Name', 'required|max_length[40]|xss_clean');
$this->form_validation->set_rules('email', 'E-mail', 'required|valid_email|xss_clean');
$this->form_validation->set_rules('website', 'Website', 'max_length[80]|prep_url|xss_clean');
$this->form_validation->set_rules('comment', 'Comment', 'required|xss_clean');
$this->form_validation->set_rules('check', 'Check', 'required|xss_clean');
if ($this->form_validation->run() == FALSE)
{
$this->load->view('cms/theme', $data);
}
else
{
echo "success";
$this->load->view('cms/theme', $data);
}
我的问题是什么是验证CAPTCHA的最佳方式?
1.)创建回调,我已经做了,但有问题,因为当我发送表单是新的验证码错误。
2.)将CAPTCHA的代码插入数据库并从中检查。问题是因为会有很多的加载数据库,它会很忙。
第二个问题。这个CAPTCHA只保存文件夹中的.jpg图片,或者它可以是其他任何格式的文件? (我问这个,因为我想删除使用后,他们此验证码是)
嗨,img_path将有一个图像,我我应该保存还是codeIgniter会创建它?我很困惑如何实际上它会工作 –
@Akhilraj N S:我已经跟着你的步骤,但captha似乎无法正常工作,无论如何形式获得submited。如果(0!== strcmp($ this-> input-> post('captcha'),$ this-> session-> userdata ['captcha' ])),但都具有相同的效果。 而我试图从文件夹中删除图像的最后一件事,但我得到错误“取消链接(完整路径\ captcha):权限被拒绝”。 – Lykos
@Deepanshu,img_path是您想要保存验证码图片的文件夹/目录。您必须创建该文件夹。将保存在那里的图像是通过验证码在PHP中创建的图像。 – user1149244