2012-06-05 58 views
1

如何在codeigniter 2.1.0中創建驗證碼加載助手codeigniter? 當我有模型m_captcha:如何在codeigniter中創建驗證碼2.1.0

function __construct() 
{ 
      parent::__construct(); 
} 

    function setCaptcha() 
    { 
      $this->load->helper('captcha'); 
      $vals = array(
       'img_path'   => './asset/captcha', 
       'img_url'   => base_url().'/asset/captcha', 
       'expiration'  => 3600,// one hour 
       'font_path'  => './system/fonts/georgia.ttf', 
       'img_width'  => '140', 
       'img_height'  => 30, 
       'word'   => random_string('numeric', 6), 
       ); 

      $cap = create_captcha($vals); 
      if ($cap) 
      { 
        $capdb = array(
         'captcha_id'  => '', 
         'captcha_time'  => $cap['time'], 
         'ip_address'  => $this->CI->input->ip_address(), 
         'word'    => $cap['word'] 
        ); 
        $query = $this->db->insert_string('captcha', $capdb); 
        $this->db->query($query); 
      }else { 
          return "Captcha not work" ; 
        } 

       return $cap['image'] ; 
}   

和我有控制器c_login:

function __construct() 
{ 
    parent::__construct(); 
    $this->load->model('m_captcha'); 
} 

    public function index() 
    { 
      $this->load->helper('captcha'); 
      $data = $this->m_captcha->setCaptcha();        
      $this->load->view('login/v_form',$data);       
    } 

和我的看法:

<?php echo form_open('c_login'); ?> 
<?php echo $cap['image']; ?> 
<?php echo form_error('captcha');?> 
<?php echo form_close(); ?> 

爲什麼驗證碼,可以考慮不顯示? 位置文件夾和圖像captcha在短信/資產/ captcha。 sms是文件夾根目錄Codeigniter。

回答

1

<?php echo $cap['image']; ?>是問題所在。

讓我們再次檢查流程,您將返回模型中的$cap['image']

之後,您接受了控制器中的$data

它必須是$data['capcha'],以便您可以在0123視圖中使用$capcha來訪問它。

非常簡單。

+0

我改變$ data = $ this-> m_captcha-> ​​setCaptcha(); 與 $ data ['captcha'] = $ this-> m_captcha-> ​​setCaptcha(); and view <?php echo $ cap ['image']; ?> 與 <?php echo $ captcha ['image']; ?> 但結果是: C,只有字母C,沒有圖像captcha和其他字母。 – pwcahyo

+0

你又錯了,仔細看上面的描述。您已經從模型中返回''image'',因此您不能以'$ captcha ['image']'的形式訪問它,它必須只是'$ captcha'。 – KuKu

+0

[請點擊這裏](http://codeigniter.com/user_guide/helpers/captcha_helper.html),其非常簡單。 – KuKu