我想在驗證用戶的所有憑據時從控制器設置codeigniter中的會話。我在我的登錄控制器的方法中有這個代碼。方法'login_check
'被form_validation的set rules方法調用爲回調函數。我嘗試一切可能的方式,但由於某種原因,我不能設置應該是根據CI手冊codeiginiter設置會話錯誤
注意一個簡單的任務會話:會話在autoload.php
$this->form_validation->set_rules('password', 'password', 'trim|required|callback_login_check');
public function login_check($password) {
$this->load->library('session');
//Field validation succeeded. Validate against database
$username = $this->input->post('username');
$this->load->model('industry_person');
//query the database
$query = $this->industry_person->check_login($username, $password);
if (!$query) {
$this->form_validation->set_message('login_check', 'Invalid username or password');
return false;
$this->index();
} else {
$data = array(
'username' => $username,
'is_logged_in' => true
);
if (!$this->session->set_userdata('logged_in', $data))
echo "error setting session";
}
}
我自動加載當我輸入正確的證書並且它們在數據庫中匹配時接收輸出爲'錯誤設置會話'。
你已經設置的加密密鑰,對? – 2013-02-22 12:54:14
'if(!$ this-> session-> set_userdata('logged_in','$ data'))'$ data引用了它 - 不應該 - 它是一個包含數組的變量。另外,set_userdata只接受數組,而不是你正在傳遞的tring'logged_in'。 – 2013-02-22 12:55:38
是的,我已經設置了加密密鑰 – Sahil 2013-02-22 12:57:57