-2

我的应用程序中有以下 codeigniter 代码可以 100% 运行,但我不知道为什么。

我的控制器语法的一部分

 if($this->input->post()){ 

      $data = array(
       'customer' =>$this->input->post('customer'),
       'period' =>$this->input->post('period'),
       'buom' =>$this->input->post('buom'),
      // 'creditlimit' =>$this->input->post('buom'),
       'creditlimit' => $this->sales_model->get_creditlimit($this->input->post('customer'))
      );

 $this->session->set_userdata($data);
  }

$this->load->view('sales/new_blank_order_lines',$this->session->all_userdata());

我不明白和之间的set_userdata($data);联系$this->session->all_userdata()

什么set_userdataall_userdata

提前致谢。

4

3 回答 3

3

正如文档所说:

对于 all_userdata:

$this->session->all_userdata()意味着所有可用的数据都像这样放在一个数组中。

Array
(
    [session_id] => 4a5a5dca22728fb0a84364eeb405b601
    [ip_address] => 127.0.0.1
    [user_agent] => Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7;
    [last_activity] => 1303142623
)

对于 set_userdata:

添加自定义会话数据

会话数组的一个有用方面是您可以将自己的数据添加到其中,并将其存储在用户的 cookie 中。你为什么想做这个?这是一个例子:

假设某个特定用户登录到您的网站。一旦通过身份验证,您可以将他们的用户名和电子邮件地址添加到会话 cookie 中,从而使您可以在全球范围内使用该数据,而无需在需要时运行数据库查询。

要将数据添加到会话数组中,需要将包含新数据的数组传递给此函数:

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

其中 $array 是一个包含新数据的关联数组。这是一个例子:

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

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

在这里阅读更多

于 2013-04-10T14:10:27.317 回答
1

*all_userdata* 返回一个包含所有用户数据的数组,它会返回如下内容:

Array
(
    [session_id] => 4a5a5dca22728fb0a84364eeb405b601
    [ip_address] => 127.0.0.1
    [user_agent] => Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7;
    [last_activity] => 1303142623
)

*set_userdata* 设置自定义会话数据。

之所以可行,是因为 CodeIgniter 能够通过 *all_userdata* 识别您的会话

希望这会有所帮助,不要犹豫,问更多问题=)

于 2013-04-10T14:10:24.250 回答
1

在顶部添加对我的评论的引用

$data = array();
if($this->input->post()){ 
    $data = array(
    'customer' =>$this->input->post('customer'),
    'period' =>$this->input->post('period'),
    'buom' =>$this->input->post('buom'),
    // 'creditlimit' =>$this->input->post('buom'),
    'creditlimit' => $this->sales_model->get_creditlimit($this->input->post('customer'))
    );
}
if(count($data)>0)
{
    $this->load->view('sales/new_blank_order_lines',$data);
}
else
{
    $this->load->view('sales/new_blank_order_lines');
}
于 2013-04-10T14:16:30.540 回答