2016-08-17 7 views
-4

bcryptでCodeIgniter md5をどのように変更しましたか?私はあなたがbcrptに変更することができますhttp://wklej.org/id/2784670/Codeigniterがbcrptハッシュパスワードでmd5を変更しました

public function can_log_in($login, $password){ 

    // var_dump($login); 
    // print_r($password); 
    // bcrypt 
    // die; 
    // print_r(md5($password)); 

    $result = $this->db 
       ->from('users') 
       ->where('email', $login) 
       ->where('password', md5($password)) 
       ->get(); 

    // print_r($result);die; 

    $this->db->where('email', $login); 
    $this->db->where('password', md5($password)); How change md5 on bcrypt?>???! 

    $query = $this->db->get('users'); 


    if ($result->num_rows()== 1){ 
     return true; 
    } else { 
     return false; 
    } 

} 
+2

あなたはtにアクセスする必要があります彼の最初の http://stackoverflow.com/help/how-to-ask – Dave

+0

@Krystian Niko Liris私はそれが助けてくれることを望んで答えました。 – user4419336

答えて

1

パスワードを

モデルのコードをハッシュ化したいと思います( 'パスワードそれを介して

ます$ this-> hashpassword(の$ this - >入力 - >ポストをpassowrdをハッシュ化「))

+0

私はあなたの賢さをリセットパスワードを機能させたいですか? –

0

私は、PHP password_hash()

を使用しますデータベースのパスワード欄には210

varchar 255

public function createUser() { 
    $options = [ 
     'cost' => 12, 
    ]; 

    $new_password = password_hash($this->input->post('password'), PASSWORD_BCRYPT, $options); 

    $data = array(
     'username' => $this->input->post('username'), 
     'password' => $new_password 
    ); 

    $this->db->set($data); 
    $this->db->insert('user'); 
} 

上記の例では、に似た何かを出力します:

$2y$12$QjSH496pcT5CEbzjD/vtVeH03tfHKFy36d4J0Ltp3lRtee9HDxY3K 

とPHP password_verify()

は、その後、あなたが何をする必要があるか

です

モデルGuide

ファイル名:Login_model.php

<?php 

class Login_model extends CI_Model { 

    public function getUser() { 
     if ($this->verify()) { 
      $this->db->select('*'); 
      $this->db->from('user'); 
      $this->db->where('username', $this->input->post('username')); 

      if ($query->num_rows() > 0) { 
       return $query->row(); 
      } else { 
       return false; 
      } 

     } 
    } 

    public function verify() { 
     $hashed = $this->getHash(); 
     $password = $this->input->post('password'); 

     if (password_verify($password, $hashed)) { 
      return true; 
     } else { 
      return false; 
     } 
    } 

    public function getHash() { 
     $this->db->select('*'); 
     $this->db->from('user'); 
     $this->db->where('username', $this->input->post('username')); 

     if ($query->num_rows() > 0) { 
      return $query->row()->password; 
     } else { 
      return false; 
     } 
    } 
} 

コントローラGuide

ファイル名:Login.php

<?php 

class Login extends CI_Controller { 

    public function __construct() { 
     parent::__construct(); 
     $this->load->library('form_validation'); 
     $this->load->model('login_model'); 
    } 

    public function index() { 
     $data['title'] = 'Login'; 

     $this->form_validation->set_rules('username', 'Username', 'trim|required'); 
     $this->form_validation->set_rules('password', 'Password', 'trim|required|callback_verify'); 

     if ($this->form_validation->run() == false) { 

      $this->load->view('header_view', $data); 
      $this->load->view('login_view', $data); 
      $this->load->view('footer_view', $data); 

     } else { 

      $userdata = $this->login_model->getUser(); 

      $data = array(
       'user_id' => $userdata->user_id 
      ); 

      // You can set your session userdata 

      redirect('success'); 
     } 
    } 

    public function verify() { 
     if ($this->login_model->verify()) { 
      return true; 
     } else { 
      $this->form_validation->set_message('verify', 'Opps something gone wrong!'); 
      return false; 
     } 
    } 
} 

注:configにごBASE_URLを設定してはいけないためにCI3バージョンで必要に応じて.php

関連する問題