为什么在Codeigniter中会话是错误的?

时间:2014-11-16 12:35:19

标签: php codeigniter session

成功自动化后,我得到一个包含用户信息的数组:

$authdata = array(
   'logged_in' => true,
   'id_user'   => $checked['idUsers'],
   'time_auth' => time(),
   'status'    => $checked['UsersStatus'],
   'type'      => $checked['UsersTypeAccount'],
);

然后将此数组设置为会话Codeigniter(数组$checked不为空,有一个UsersStatus和UsersTypeAccount):

$this->session->set_userdata($authdata);

在控制器profile重定向后:

redirect('profile');

此控制器检查用户会话为空/ true:

if ($this->session->userdata("session_id") && $this->session->userdata("type") && (($this->session->userdata("status")){
   // Return Success
}

如果make var_dump()session:

var_dump($this->session->userdata("type")).'<br>';     // false
var_dump($this->session->userdata("status")).'<br>'; die(); // false

我得到一个错误值,为什么typestatus字段在会话中不正确?

版:

我也做过:

var_dump($this->session->all_userdata()); die();

响应:

array(5) { ["session_id"]=> string(32) "85d9e0aa1f738c551b4ba649c36f977c" ["ip_address"]=> string(12) "46.32.174.82" ["user_agent"]=> string(109) "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36" ["last_activity"]=> int(1416142399) ["user_data"]=> string(0) "" }

因此,会话已创建,但没有字段状态,请键入

来自教程:

$newdata = array(
                   'username'  => 'johndoe',
                   'email'     => 'johndoe@some-site.com',
                   'logged_in' => TRUE
               );

$this->session->set_userdata($newdata);

重要:

$this->session->set_userdata($authdata);
var_dump($this->session->all_userdata()); die(); // Here I get full session array.

1 个答案:

答案 0 :(得分:0)

经过长时间的努力解决这个问题后,我决定:

  1. 将Codeigniter更新为2.2版
  2. 代码完成后:
  3. 设置会话

    $this->session->set_userdata($authdata);
    

    获取会话

    $type       = $this->session->userdata['type'];
    $status     = $this->session->userdata['status'];
    $session_id = $this->session->userdata['session_id'];
    

    它帮助了我,也许还有人