-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

一番上に私のコメントへの参照を追加する

$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 に答える
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 に答える