仅在登录codeigniter后显示用户id和用户名
我在Codeignator中有一个登录和注册系统。 这是我的控制器-仅在登录codeigniter后显示用户id和用户名,codeigniter,session,Codeigniter,Session,我在Codeignator中有一个登录和注册系统。 这是我的控制器- function index() { if($this->session->userdata('logged_in')) { $session_data = $this->session->userdata('logged_in'); //$data['username'] = $session_data['username'];
function index()
{
if($this->session->userdata('logged_in'))
{
$session_data = $this->session->userdata('logged_in');
//$data['username'] = $session_data['username'];
$data = array(
'user_id'=>$session_data['user_id'],
'username'=>$session_data['username'],
'firstname'=>$session_data['firstname'],
'lastname'=>$session_data['lastname']
);
$this->load->view('home_view', $data);
}
else
{
//If no session, redirect to login page
redirect('login', 'refresh');
}
}
此代码仅显示用户id和用户名。但不显示名字和姓氏。请帮助我…考虑到您已将会话设置为这样
$data = array(
'user_id'=>id,
'username'=>"name",
'logged_in'=>1,
);
$this->session->set_userdata($data);
要从会话访问值
$this->session->userdata("name of session variable");
就你而言
$this->session->userdata("user_id");// for user id
$this->session->userdata("user_name");// for user name
在上面给定的代码中,我在会话设置中找不到
firstname
。但是您正在尝试获取firstname
,那么代码将如何为您提供firstname
请让我们看看您是如何设置会话的?这里是来自我的控制器的另一个代码-if($result){$sess_array=array();foreach($result as$row){$sess_array=array('user_id'=>$row->user_id,'username'=>$row->username);$this->session set_userdata('logged_',$sess_array)}返回TRUE;}否则{$this->form_validation->set_message('check_database','Invalid username或password');返回false;}您能告诉我为什么我看不到其他记录,如firstname、lastname等。这些记录只显示用户id和用户名。嗯,我已经复制了登录系统并将其实现到我的系统中,它只包含用户id、用户名和密码。然后,我创建了带有两个字段firstname和lastname的注册表,并在表中为此创建了新行。我用自己创造的新纪录无法获得。。。
if($result) {
$sess_array = array();
foreach($result as $row) {
$sess_array = array(
'user_id' => $row->user_id,
'username' => $row->username
);
$this->session->set_userdata('logged_in', $sess_array);
}
return TRUE;
} else {
$this->form_validation->set_message('check_database', 'Invalid username or password');
return false;
}