|
首先加载辅助函数,$this->load->helper('captcha');
创造出验证码:
$vals = array(
'img_path' => './captcha/',
'img_url' => 'http://localhost/ci/captcha/',
'font_path' => './path/to/fonts/texb.ttf',
'img_width' => '150',
'img_height' => 30,
'expiration' => 120
);
$cap = create_captcha($vals);
$data['img'] = $cap['image'];//将验证码放data里面,以备前台调用。
$this->load->view('admin/home',$data);
$this->session->set_userdata('word',$cap['word']);//造验证码的时候要把word放到session里面。下面aa方法里会用。
下面来看前台显示:
<form action="admin/aa" method="post">
验证码:<input type="text" name="yan"/><?php echo $img;?><br />
<input type="submit" value="提交"/>
</form>
admin里的aa方法。
if(strcasecmp($this->input->post('yan'),$this->session->userdata('word'))==0){
echo "验证码正确!";
}
到此,CI的验证码解决了。不过确实有bug。在随意更改验证码的长度时,有时验证码会超出范围。 |
|