我在登录时创建了一个 session ,但它没有保存我存储在 session 中的变量,也没有将它们传送到其他页面:
Controller 代码:
function CheckDatabase($password) //This function is only run when password validation is correct.//
{
$username = $this->input->post('Username'); //Sets the username as a $username.//
$result = $this->User_model->Login($username, $password);
if($result)
{
$sess_array = array();
foreach($result as $row)
{
$sess_array = array( //Makes an array of the data to be stored in the session.//
'UserID' => $row->UserID,
'Username' => $row->Username
);
$this->session->set_userdata('logged_in', $sess_array); //Sets $sess_array as the session.//
}
return TRUE;
}
else //Ran if the username or password aren't matched in the CIUsers database. Returns error message.//
{
$this->form_validation->set_message('CheckDatabase', 'Invalid login details.');
return false;
}
}
同一 Controller 上的索引功能(应该阻止用户返回登录屏幕但没有)
function index() //Default function that is run when this controller is called.//
{
if($this->session->userdata('logged_in'))
{
redirect('Home_controller');
}
else
{
$this->load->helper(array('form'));
$this->load->view('Login_view');
}
}
主页 View 上的代码(登录后定向到哪个浏览器)
<?php echo $UserID .": ".$Username; ?>
显示 session 数据时出现此错误:
Message: Undefined variable: Username
Filename: views/Home_view.php
Line Number: 9
最佳答案
要检索 session 变量,您必须这样做
$username = $this->session->userdata['logged_in']['Username'];
echo $username;
关于php - CodeIgniter session 数据不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33154619/