小编use*_*377的帖子

CodeIgniter将会话变量添加到已定义的"命名会话"

我已经创建了名为"Verified"的会话,如下所示(在我的登录控制器中):

foreach($result as $row)
{
  $sess_array = array(
       'id' => $row->memberid, //Session field: id.
       'username' => $row->member_userunique //Session field: username.
  );
  // Create a session with a name verified, with the content from the array above.
  $this->session->set_userdata('verified', $sess_array);
}
Run Code Online (Sandbox Code Playgroud)

现在,当用户打开一个名为book的页面(带有名为book的控制器)时,我想在我的"已验证"会话中再添加一个名为"book_id"的附加变量.

这就是我所做的

function index()
{
   //Add a new varible called book_id
   $this->session->set_userdata('book_id', $titleID);
}
Run Code Online (Sandbox Code Playgroud)

当我尝试使用以下方法检索'book_id'时:

    $session_data = $this->session->userdata('verified');
    $article_id = $session_data['book_id'];
    $user_id = $session_data['id'];
Run Code Online (Sandbox Code Playgroud)

它只能检索'id'但是'book_id'没有定义.但是如果对$ this-> session-> all_userdata()执行var_dump(),我可以看到已成功附加'book_id'会话变量.

阅读关于会话的CI文档后,我意识到上面的代码将无法正常工作,因为我没有告诉它应该将变量添加到哪个会话.

有人能指出我正确的方向吗?

php session codeigniter session-variables session-cookies

4
推荐指数
1
解决办法
2万
查看次数