2014-06-25 36 views
0

我已經爲登錄驗證創建了一個自定義庫文件。如果我在$ this-> load-> library('form_validation')之前調用自定義庫,在codeigniter中使用外部庫類

class VerifyLogin extends CI_Controller { 
    function __construct() 
    { 
     parent::__construct(); 
     $this->load->helper('url'); 
     $this->load->model('loginuser'); 
     $this->load->library('validate_login','','session_validation');// where validate_login is the custom library class inside applications/libraries/validate_login.php 
    } 
    function index() 
    { 
     //my code 
     $this->load->library('form_validation'); 
    } 

    } 

這是我得到$ this-> load-> library('form_validation')的錯誤;它適用於perfectley。 我只想知道爲什麼這段代碼有效?我是否覆蓋默認庫?

消息:未定義的屬性:VerifyLogin :: $ form_validation

,如果我加載庫後

class VerifyLogin extends CI_Controller { 
    function __construct() 
    { 
     parent::__construct(); 
     $this->load->helper('url'); 
     $this->load->model('loginuser'); 
     $this->load->library('form_validation'); 
     $this->load->library('validate_login','','session_validation');// where validate_login is the custom library class inside applications/libraries/validate_login.php 
    } 
    function index() 
    { 
     //my code 
    } 

    } 
+0

發佈你的'Validate_login'。 – Sobiaholic

+0

@Sobiaholic我在答案中加入了validate_login .. –

回答

0

它看起來像你加載你的庫是錯誤的。嘗試其中之一;

$this->load->library(array('library1', 'library2')); 

$this->load->library('library1'); 
$this->load->library('library2'); 
+0

我已經使用了Single Method,但第二個庫沒有加載! –

0

@sobiaholic

這validate_login

class Validate_login extends CI_Controller { 
    function __construct() 
    { 
    parent::__construct(); 
    $this->load->model('loginuser'); 
    $this->load->helper('url'); 
    } 
    function is_logged() 
    { 
     if(isset($this->session->userdata['my_session_id'])) 
     { 
      if(strlen($this->session->userdata['my_session_id'])) 
      { 
       return TRUE; 
      } 
      else 
      { 
       return FALSE; 
      } 
     } 
     else 
     { 
      return FALSE; 
     } 
    } 
    function validate_login() 
    { 
     $session_id=$this->session->userdata['my_session_id']; 
     $this->db->select('last_activity,user_data'); 
     $this -> db -> from('sessions'); 
     $this->db->where('session_id',$session_id); 
     $this -> db -> limit(1); 
     $query = $this -> db -> get(); 
     if($query -> num_rows() == 1) 
     { 
     $results=$query->result(); 
     $active_session=$this->session_alive($results[0]->last_activity,$session_id); 
     if($active_session==TRUE) 
     { 
      return TRUE; 
     } 
     else 
     { 
      $this->verifylogin->logout(); 
     } 
     } 
     else 
     { 
     return false; 
     } 
    } 
    function session_alive($valid_till,$session_id) 
    { 
     $time_limit=$this->config->item('sess_expiration'); 
     if (time() - $valid_till > $time_limit) 
     { 
      return FALSE; 
     } 
     else 
     { 
      if($this->update_session($session_id)==TRUE) 
      { 
       return TRUE; 
      } 
      else 
      { 
       return FALSE; 
      } 
     } 
    } 
    function update_session($session_id) 
    { 
     $new_time=time(); 
     $data=array('last_activity'=>$new_time); 
     $this->db->where('session_id',$session_id); 
     $this->db->update('sessions',$data); 
     if($this->db->affected_rows()) 
     { 
      return TRUE; 
     } 
    } 
} 
+0

這是一個圖書館嗎?還是控制器? – Craig

+0

@Craig這個外部庫文件裏面的「應用程序/庫/」 –

+0

沒有必要擴展控制器類。 – Craig