ci

2014-06-23 3 views
0

에 대한 사용자 쿼리가 정확하지 않은지 확실하지 않습니다. 이전 사용자 쿼리 select*from을 새 codeigniter 방법으로 변환하려고하지만 올바른지 확실하지 않습니다.ci

이 내 옛날 방식

$user_query = $this->db->query(
     "SELECT * FROM " . DB_PREFIX . "user WHERE username = '" . 
     $this->db->escape($username) . 
     "' AND (password = SHA1(CONCAT(salt, SHA1(CONCAT(salt, SHA1('" . 
     $this->db->escape($password) . "'))))) OR password = '" . 
     $this->db->escape(md5($password)) . "') AND status = '1'" 
    ); 

입니다 그리고 이것은 새로운 방법입니다. 내가 select * from 올바른 지 난 소금물을 제거하고 확실하지 오전 SHA1.

public function login() { 
     $this->db->select('user'); 

     $this->db->from('user_id'); 

     $this->db->where('username', $this->input->post('username')); 

     $password = $this->input->post('password'); 

     // Password Has Own Security Measures 
     $this->db->where('password', $this->encryption->hash_password().hash('sha512', $password).$this->encryption->generate_salt()); 

     $this->db->where('status', "1"); 

     $user_query = $this->db->get('user'); 

     if($user_query->num_rows) { 

     } else { 
      /* 
      | Other Data Goes Here. 
      | 
      | 
      **/ 
      return true; 
     } 
     return false; 
    } 

답변

0

당신은 체인 CodeIgniter의에서 DB 수, 당신은 당신의에서 일부 오류가 있었다 :

$password = $this->input->post('password'); 

$query = $this->db->select('*') 
      ->where('username', $this->input->post('username')) 
      ->where('password', $this->encryption->hash_password().hash('sha512', $password).$this->encryption->generate_salt()) 
      ->where('status', "1") 
      ->get('user'); 
0

당신이 active record 기능을 혼동하고, 당신은 같은 그것을 체인 수행 할 수 있습니다

.... 
$password = $this->input->post('password'); 
$username = $this->input->post('username'); 

$user_query = $this->db->select('user_id')  
->where( 
    array(
     'username' => $username, 
     'password' => $this->encryption->hash_password().hash('sha512', $password).$this->encryption->generate_salt(), 
     'status' => 1 
    ) 
) 
->get('user'); 
.....