我创建了一些表格,用于将数据插入数据库并检查数据是否来自人类,我使用了已集成到 CI 的 CAPTCHA。
这是我的控制器:
$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 的代码插入数据库并从中检查。问题是因为会有很多加载数据库并且它会很忙。
第二个问题。此验证码是否仅将 .jpg 图片保存在文件夹中,或者它可以是任何其他格式?(我问这个是因为我想在使用后删除这个验证码。)