|
新手,感觉对框架的理解还想不透彻。
为了简便,我把captcha word 存在了session里面。没有使用到数据库。
但是需要做验证码的刷新,view视图是不能调用controller函数的,那又应该怎么进行刷新验证码呢。
captcha_model.php
class Captcha_model extends CI_Model
{
function __construct()
{
parent::__construct();
$this->load->helper('captcha');
}
function create_captcha()
{
$vals = array(
'word' => rand(1000,10000),
'img_path' => './captcha/',
'img_url' => base_url()."captcha/",
'img_width' => '60',
'img_height' => '30',
'expiration' => 7200
);
$code = array(
'code' => $vals['word']);
$this->session->set_userdata($code);
return create_captcha($vals);
}
}
controller
$data['cap'] = $this->captcha_model->create_captcha();
$this->load->view('submit_view', $data);
public function captcha_check($value)//自定义表单验证
{
if ($value != $this->session->userdata('code')) {
$this->form_validation->set_message('captcha_check', '验证码错误');
return FALSE;
}else{
return TRUE;
}
}
第二个问题是,表单验证后的自动填充,手册上用这个set_value()函数,验证失败时是会自动填充,但是验证成功后,提交了数据,它还是自动的填充了表单。这个要怎么解决呀??? |
|