感謝@Mischa幫助我解決問題。將數據傳遞給CI模型
答:
型號:
function validate_login($username, $password) {
$bcrypt = new Bcrypt(17);
$sql = "SELECT * FROM users WHERE username = ? ";
$loginQ = $this -> db -> query ($sql, array($username));
$database = $loginQ->row();
$hash = $database->password;
if ($bcrypt -> verify($password, $hash)){
return $loginQ;
}
}
控制器:
function validate_credentials() {
$this -> load -> library('form_validation');
$this -> load -> library('bcrypt');
$this -> form_validation -> set_rules('username', 'Username', 'required|alpha_numeric|min_length[4]|max_length[15]');
$this -> form_validation -> set_rules('password', 'Password', 'required|min_length[7]|alpha_dash|max_length[20]');
if ($this -> form_validation -> run() == FALSE) {
$this -> index();
} else {
$this -> load -> library('bcrypt');
$this -> load -> model('login_model');
$username = $this -> input -> post('username');
$password= $this -> input -> post('password');
if ($loginQ = $this -> login_model -> validate_login($username, $password)) {
if ($activated = $this -> login_model -> activated($username)) {
$session_array = array('username' => $this -> input -> post('username'), 'loggedin' => TRUE);
$this -> session -> set_userdata($session_array);
redirect('staff_controller/index');
} else {
$this -> session -> sess_destroy();
$this -> load -> view('accessdenied_view');
$this -> output -> _display();
die();
}
} else {
$this -> index();
}
}
}
什麼你想只做傳遞數據時的觀點的作品。 – Mischa 2013-02-21 14:06:04
但是當我print_r($ data);在模型中,我得到一組數據(我的用戶名和密碼) – RaGe10940 2013-02-21 14:07:28
是的,但是你的模型中沒有使用'$ data'。你正在使用'$ username'和'$ password',這些都是未定義的。在您的模型中傳遞'$ username'和'$ password' *到*您的模型或者使用'$ data ['username']'和'$ data ['password']'* *。不是像你現在這樣做的組合。 – Mischa 2013-02-21 14:10:13