如何从Session Array获取特定值?

时间:2014-04-20 09:00:01

标签: php arrays codeigniter session

我已创建会话并将User_id分配给会话变量。当我使用print_r();时,它会向我显示关联数组中的会话变量数据,但是当我使用foreach时,它会给我很多错误消息。

请检查并指导我在这里做错了什么。

        print_r($session_dataa= $this->session->all_userdata());

        Session dataArray ( [session_id] => 5943ecd761c336e70240b25d37b054b8 
        [ip_address] => ::1 
        [user_agent] => Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) 
        Gecko/20100101 Firefox/28.0
        [last_activity] => 1397982790
        [user_data] => [41] => ) 

我想抓取[user_data]=> [41]并存储在student_id变量中。为了实现这一点,我使用了foreach循环,但它给了我以下错误信息。

$session_data= $this->session->all_userdata();

foreach ($session_data as $data)
{
    $student_id =   $data->user_data;
}

Severity: Notice

Message: Trying to get property of non-object

Filename: views/students.php

Line Number: 32

这就是我将User_id分配给会话数据的方式。 的 mycontroller.php

                //[[session]]

$data['students_data']= $this->loginmodel->student_profile($currentId);     


$this->load->library('session');
   $this->session->set_userdata($currentId);

4 个答案:

答案 0 :(得分:3)

您没有将current_id与任何变量相关联,下面给出了将值分配给会话变量的正确方法;

<强>控制器

$this->load->library('session');

$this->session->set_userdata(array(
                             'currentId' =>$current_id                           
                            ));

查看

$student_id                   = $this->session->userdata('currentId');

答案 1 :(得分:2)

要获取会话变量,只需执行

$this->session->userdata('user_data');

当你使用像这样的会话类访问会话变量时,它会自动检查它是否设置,这样你就不会收到任何错误。

答案 2 :(得分:1)

怎么样

$student_id= $session_data['user_data'];

答案 3 :(得分:0)

试试这个

$session_data= $this->session->all_userdata();

$student_id =   $session_data[user_data];

OR

$session_data= $this->session->all_userdata();

foreach ($session_data as $data)
{
    $student_id =   $data[user_data];
}