2015-08-24 89 views
0

在我的项目中,会话在几天前工作正常。但现在它不起作用。我找不到错误。 plsease帮助我。它显示错误称为严重性:注意会话无法在codeigniter中工作

消息:未定义
指数:姓名
文件名:user_include/header.php文件
行号:遇到5
甲PHP错误
严重性:注意
消息:未定义
指数:ID
文件名:user_include/header.php文件
行号:7

控制器

/ Check for user login process 
public function user_login_process() { 

$this->form_validation->set_rules('email', 'Email', 'trim|required|xss_clean'); 
$this->form_validation->set_rules('password', 'Password', 'trim|required|xss_clean'); 

if ($this->form_validation->run() == FALSE) { 
if(isset($this->session->userdata['logged_in'])){ 
//$this->load->view('admin_page'); 
    $this->home(); 
}else{ 
$this->load->view('user_site/login_form'); 
} 
} else { 
$data = array(
'email' => $this->input->post('email'), 
'password' => $this->input->post('password') 
); 
$result = $this->login_database->login($data); 
if ($result == TRUE) { 

$email = $this->input->post('email'); 
$result = $this->login_database->read_user_information($email); 
if ($result != false) { 
$session_data = array(
'firstname' => $result[0]->firstname, 
'email' => $result[0]->email, 
    'id' => $result[0]->id, 
); 
// Add user data in session 
$this->session->set_userdata('logged_in', $session_data); 

        $this->load->view("user_include/header"); 
        $this->load->view('user_site/index'); 
} 
} else { 
$data = array(
'error_message' => 'Invalid Username or Password' 
); 
$this->load->view('user_site/login_form', $data); 
} 
} 
} 





// Logout 
public function logout() { 

// Removing session data 
$sess_array = array(
'email' => '' 


); 
$this->session->unset_userdata('logged_in', $sess_array); 
$data['message_display'] = 'Successfully Logout'; 
$this->load->view('user_site/login_form', $data); 
} 
    }  

?> 

模型

// Read data using username and password 
public function login($data) { 

$condition = "email =" . "'" . $data['email'] . "' AND " . "password =" . "'" . $data['password'] . "'"; 
$this->db->select('*'); 
$this->db->from('user'); 
$this->db->where($condition); 
$this->db->limit(1); 
$query = $this->db->get(); 

if ($query->num_rows() == 1) { 

return true; 
} else { 
return false; 
} 
} 

// Read data from database to show data in admin page 
public function read_user_information($email) { 

$condition = "email =" . "'" . $email . "'"; 
$this->db->select('*'); 
$this->db->from('user'); 
$this->db->where($condition); 
$this->db->limit(1); 
$query = $this->db->get(); 

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

} 

?> 

视图

<?php 
if (isset($this->session->userdata['logged_in'])) { 
$firstname = ($this->session->userdata['logged_in']['firstname']); 
$email = ($this->session->userdata['logged_in']['email']); 
$id = ($this->session->userdata['logged_in']['id']); 
} else { 
header("location: login"); 
} 

回答

0

的错误是在你user_include/header.php,检查你的ID和名字,然后再回显出来。

+0

当我打印会话阵列结果是 阵列([SESSION_ID] => 9f9e42213f3dd75e1fe6d50eb4f4cc1e [IP地址] => 127.0.0.1 [USER_AGENT] => Mozilla/5.0(Windows NT 6.1)AppleWebKit/537.36(KHTML,如Gecko)Chrome浏览器/ 44.0.2403.157 Safari/537.36 [last_activity] => 1440383538 [user_data] => [logged_in] => Array([first_name] => lak [电子邮件] => [email protected] [id] => 19)) – ashik

+0

您何时在登录之后或之前发生错误? – mdamia

+0

你可以显示来自header.php文件的代码吗? – mdamia

0

在模型中给出的代码替换下面的代码:

public function read_user_information($email) { 

    $condition = "email =" . "'" . $email . "'"; 
    $this->db->select('*'); 
    $this->db->from('user'); 
    $this->db->where($condition); 
    $this->db->limit(1); 
    $query = $this->db->get(); 

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

public function read_user_information($email) { 
    $this->db->select('firstname, email, id'); 
    $this->db->from('user'); 
    $this->db->where('email',$email); 
    $query = $this->db->get(); 

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

在您的控制器替换下面给出

$email = $this->input->post('email'); 
$result = $this->login_database->read_user_information($email); 
if ($result != false) { 
$session_data = array(
'firstname' => $result[0]->firstname, 
'email' => $result[0]->email, 
    'id' => $result[0]->id, 
); 
// Add user data in session 
$this->session->set_userdata('logged_in', $session_data); 

        $this->load->view("user_include/header"); 
        $this->load->view('user_site/index'); 
} 

代码为

$email = $this->input->post('email'); 
$user_details = $this->login_database->read_user_information($email); 
if ($user_details != false) { 
    // Add user data in session 
    $this->session->set_userdata('logged_in', $user_details); 
    $this->load->view("user_include/header"); 
    $this->load->view('user_site/index'); 
} 

在视图中,通过下列替换代码:

<?php 
$user_details = $this->session->userdata['logged_in']); 

if ($user_details != "") { 
    $firstname = $user_details['firstname']; 
    $email = $user_details['email']; 
    $id = $user_details['id']; 
} else { 
    header("location: login"); 
} 
+0

后更换您的代码 一个PHP错误遇到 严重性:注意 消息:未定义指数:姓 文件名:5 – ashik

+0

你必须有名字字段:user_include/header.php文件 行号表用户。你做? –

+0

yes.there是称为姓名字段 – ashik