在视图中显示会话数据

时间:2012-08-25 00:43:27

标签: php codeigniter

我正在从我的数据库中恢复会话数据,但我无法显示我的表的LastName属性,我不知道为什么因为FirstName成功返回。我的数据库中有LastName属性。我的观点给了我错误:消息:未定义的索引:姓氏//文件名: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;
    }
}

controller:home

   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; ?>

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

这是一个肯定会解决问题的简单解决方案

控制器上的

添加此调试行,并在使用内部数组

确认后对其进行注释
$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);
           }