我已經創建了一些用於將數據插入到數據庫中並用於檢查數據是否從人發送的表單我已經使用了已經集成到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