我正在从数据库中返回会话数据,但我无法显示表的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);
}