在视图中显示会话数据


displaying session data in view

我正在从数据库中返回会话数据,但我无法显示表的LastName属性,我不知道为什么,因为FirstName成功返回。我的数据库中确实有LastName属性。我的视图显示错误:消息:未定义的索引:Lastname//Filename:controllers/home.php

这是我的型号

Class Membership_model extends CI_Model 
{
function __construct()
{
parent::__construct();
}

function validate_student($username,$password){
   $this -> db -> select('Student_ID, Firstname,Lastname, password');
   $this -> db -> from('Student');
   $this -> db -> where('Student_ID = ' . "'" . $username . "'");
   $this -> db -> where('password = ' . "'" . MD5($password) . "'");
   $this -> db -> limit(1);
    //If it is all correct
    $query = $this -> db -> get();
    if($query->num_rows() == 1){
         return $query->result();

    }else{
        return false;
    }
}

控制器:主页

   class Home extends CI_Controller {
     function __construct()
     {
       parent::__construct();
     }
     function index()
     {
       if($this->session->userdata('logged_in'))
       {
         $session_data = $this->session->userdata('logged_in');
         $data['Firstname'] = $session_data['Firstname'];
         $data['Lastname'] = $session_data['Lastname'];
         $this->load->view('home_view', $data);
       }

主视图:

<h2>Welcome <?php echo $Lastname; ?>

打印会话数据$session_data,用它更新您的问题,错误是您在$session_data['Lastname'];、中没有索引Lastname

表单中设置会话数据logged_in,请用更新您的问题

这里有一个简单的解决方案,它肯定会解决问题

在控制器上添加此调试行,并在内部阵列确信后对其进行注释

$session = $this->session->userdata;
echo '<pre>';
   print_r($session);
echo '</pre>';

这是一个调试工具,用于查看会话变量

请注意,在条件下添加这行将进行

 function index()
         {
$session = $this->session->userdata;
           if(array_key_exists('logged_in',$session)) //Check if array key exists in session
           {
             $session_data = $this->session->userdata('logged_in');
             $data['Firstname'] = $session_data['Firstname'];
             $data['Lastname'] = $session_data['Lastname'];
             $this->load->view('home_view', $data);
           }