Php CodeIgniter会话数据不工作
我在登录时创建了一个会话,但它既没有保存我存储在会话中的变量,也没有将它们带到其他页面: 控制器代码:Php CodeIgniter会话数据不工作,php,codeigniter,session,Php,Codeigniter,Session,我在登录时创建了一个会话,但它既没有保存我存储在会话中的变量,也没有将它们带到其他页面: 控制器代码: function CheckDatabase($password) //This function is only run when password validation is correct.// { $username = $this->input->post('Username'); //Sets the username as a $username.//
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;
}
}
同一控制器上的索引功能(应阻止用户返回登录屏幕,但不会)
主视图上的代码(登录后指向哪个浏览器)
我在显示会话数据时遇到以下错误:
消息:未定义变量:Username
文件名:views/Home\u view.php
电话号码:9
要检索会话变量,必须执行以下操作
$username = $this->session->userdata['logged_in']['Username'];
echo $username;
$newdata = array(
'user_id' => $rows->id,
'user_name' => $rows->name,
'user_image' => $rows->user_image,
'user_email' => $rows->email,
'logged_in' => TRUE,
'user_type' => $rows->user_type
);
}
$this->session->set_userdata($newdata);
您必须像这样从会话中检索它,然后才能使用:
$user = $this->session->userdata('logged_in');
$Username = $user['Username'];
$UserID = $user['UserID'];
像这样试试
$username = $this->session->userdata['logged_in']['Username'];
echo $username;
$newdata = array(
'user_id' => $rows->id,
'user_name' => $rows->name,
'user_image' => $rows->user_image,
'user_email' => $rows->email,
'logged_in' => TRUE,
'user_type' => $rows->user_type
);
}
$this->session->set_userdata($newdata);
并签入用于用户会话的控制器构造
<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class User extends CI_Controller {
public function __construct() {
parent::__construct();
//Here we will check for the session value if it is true then the function will run else it will redirect to login page
if ($this->session->userdata('logged_in') == FALSE) {
redirect(site_url('your login page'));
} else {
// if there is session value
redirect(site_url('User/your function name');
}
}
}
?>
}
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[0]->UserID,
'Username' => $row[0]->Username
);
$this->session->set_userdata('logged_in', $sess_array); //Sets $sess_array as the session.//
}
return TRUE;