2012-06-12 58 views
1

爲什麼我的密碼不被插入到數據庫笨SHA1查詢

型號:

function addUser($userData = NULL, $passwordHash) 
    { 
     $this->db->insert('users',$userData,$passwordHash); 
     return TRUE; 
    } 

控制器:

public function addUser() 
    { 
     $data['pageTitle'] = 'GA Add User'; 
     $this->load->view('_assets/header', $data); 
     $this->load->view('addUser', $data); 
     $this->load->view('_assets/footer'); 

     $userData = array(
      'fName' => $this->input->post('userFirstName', TRUE), 
      'lName' => $this->input->post('userLastName', TRUE), 
      'email' => $this->input->post('userEmail', TRUE) 
     ); 

     $passwordHash = sha1($this->input->post('userPassword', TRUE)); 

     $this->db->escape($userData); 

     $this->user_model->addUser($userData, $passwordHash); 

    } 
+0

您忘記了[密碼哈希](http://en.wikipedia.org/wiki/Salt_%28cryptography%29)。 – sarnold

回答

2

編輯:

function addUser($userData = NULL) 
    { 
     $this->db->insert('users',$userData); 
     return TRUE; 
    } 


public function addUser() 
    { 

     $userData = array(
      'fName' => $this->input->post('userFirstName', TRUE), 
      'lName' => $this->input->post('userLastName', TRUE), 
      'email' => $this->input->post('userEmail', TRUE), 
      'password'=>sha1($this->input->post('userPassword', TRUE)) 
     ); 


     $this->user_model->addUser($userData); 


     $data['pageTitle'] = 'GA Add User'; 
     $this->load->view('_assets/header', $data); 
     $this->load->view('addUser', $data); 
     $this->load->view('_assets/footer'); 

    } 

將密碼添加到$ userdata數組以使其更清潔。並修改了addUser函數。你不需要轉義數據,數據庫庫會爲你做。請注意,您必須在腳本末尾加載視圖

+0

謝謝,我能夠print_r我的$密碼字段,它顯示了sha1,但它仍然不會導入'密碼'=> $密碼,但用戶數據工作正常。想法varchar長度是200 –

+0

修改我的答案,它現在應該爲你工作 –

+0

順便說一句,我看到很少控制用戶輸入那裏。您至少應該檢查用戶名和密碼是否不爲空。當然,請檢查用戶名是否已被佔用 –