我试图弄清楚如何将用户名字添加到会话数据 . 目前我只能添加电子邮件,甚至不知道我是怎么做到的 . 任何帮助将不胜感激,谢谢 .
这是我添加新用户的模型:
public function add_user($key){
$this->db->where('key', $key);
$temp_user = $this->db->get('temp_users');
if($temp_user){
$row = $temp_user->row();
$data = array(
'firstname' => $row->firstname,
'email' => $row->email,
'password' => $row->password
);
$did_add_user = $this->db->insert('users', $data);
}
if($did_add_user){
$this->db->where('key', $key);
$this->db->delete('temp_users');
return $data['email'];
} return false;
}
这是我的控制器信息(我当前正在为firstname的会话数据添加一个静态值'kyle') . 我想添加从数据库中获取的实际用户firstname:
public function register_user($key){
$this->load->model('model_users');
if($this->model_users->is_key_valid($key)){
if($newemail = $this->model_users->add_user($key)){
$data = array(
'firstname' => "kyle",
'email' => $newemail,
'is_logged_in' => 1
);
$this->session->set_userdata($data);
redirect('login/members');
}else echo "Failed to add user, please try again.";
}else echo "invalid Key";
}
这是我的观点:
会员页面
session-> userdata('email'); echo $ session_id; ?>
会话级> all_userdata();的print_r($ SESSION_INFO); ?>
这是会话数组打印出来的内容:
Array ( [session_id] => 4fb01d348ba495ef010fe07415713167 [ip_address] => blah.blah.blah [user_agent] => Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36 [last_activity] => 1421942397 [user_data] => [firstname] => kyle [email] => freeride5567@yahoo.com [is_logged_in] => 1 )
2 回答
检查codeigniter文档:
https://www.codeigniter.com/user_guide/libraries/sessions.html
为了通过会话获得名字,tonoslfx的答案是正确的 .
即:将会话中的数据存储为数组:
根据评论和聊天中的进一步讨论,以下是当用户在注册后登录时如何在会话中获取firstname的解决方案:
在控制器中:
在'model_users'模型中,使用: