【发布时间】:2011-03-01 00:05:38
【问题描述】:
嘿,我想在登录时存储一些来自数据库查询的会话信息, 但由于某种原因,它不允许我设置会话用户数据!?!
谁能解释为什么?
控制器:
function validate_login(){
$this->load->library('form_validation');
$this->form_validation->set_rules('email_address', "Email address","required|valid_email");
$this->form_validation->set_rules('password', "Password", "trim|required|min_length[6]|max_length[32]");
if($this->form_validation->run() == FALSE){
$this->login();
} else {
$email_address = $this->input->post('email_address');
$password = md5($this->input->post('password'));
$prev_page = $this->input->post('referrer');
$found_user = $this->account_model->validate_user($email_address, $password); // calls to function of the same name in the model, returns array.
if($found_user){
$session_data = array(
'user_id' => $found_user->user_id,
'is_logged_in' => TRUE
);
// Debug code
if($this->session->set_userdata($session_data)){
echo "success session";
} else {
echo "failure session";
}
} else {
//Debug code
echo 'no user found';
}
}
}
型号:
function validate_user($email_address, $password){
$this->db->where('email_address', $email_address);
$this->db->where('password', $password);
$query = $this->db->get('user');
if($query->num_rows() == 1){
foreach($query->result() as $row){
$data = $row;
}
return $data;
} else {
return FALSE;
}
}
【问题讨论】:
-
错误是什么? “会话失败”或“未找到用户”?
-
您并不是每个人都在会话中保存任何内容...
-
对不起,错误是“失败会话”
-
@seth - $this->session->set_userdata($session_data) 保存到会话中,包含在此处用于调试的 if 语句中,如果为 true,它将回显“成功会话”;
-
每当我 print_r($session_data) 我得到我期望的数组(['user_id'] => 2, ['is_logged_in'] => 1)
标签: php database session codeigniter login