/ / dane sesji codeigniter `all_userdata` i` set_userdata` [closed] - codeigniter, session

dane sesji codeigniter `all_userdata` i` set_userdata` [closed] - codeigniter, session

Mam poniżej kod codeigniter w mojej aplikacji, który działa w 100%, ale nie wiem dlaczego.

część mojej składni kontrolera

 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());

Nie rozumiem powiązania między set_userdata($data); i $this->session->all_userdata()

co jest set_userdata do all_userdata

Z góry dziękuję.

Odpowiedzi:

3 dla odpowiedzi № 1

jak mówi dokumentacja:

dla wszystkich_użytkowników:

$this->session->all_userdata() oznacza, że ​​wszystkie dostępne dane są umieszczane w tablicy w taki sposób.

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
)

dla set_userdata:

Dodawanie danych sesji niestandardowej

Użytecznym aspektem tablicy sesji jest to, że można dodawać własne dane i będzie przechowywany w pliku cookie użytkownika. Dlaczego chcesz zrobić to? Oto jeden przykład:

Powiedzmy, że konkretny użytkownik loguje się do Twojej witryny. Po uwierzytelnieniu możesz dodać ich nazwę użytkownika i adres e-mail do pliku cookie sesji, udostępnianie danych na całym świecie bez konieczności uruchamiania zapytanie o bazę danych, gdy jej potrzebujesz.

Dodanie danych do tablicy sesji wymaga przekazania tablicy zawierające nowe dane do tej funkcji:

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

Gdzie $ array jest tablicą asocjacyjną zawierającą nowe dane. Oto przykład:

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

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

Czytaj więcej TUTAJ


1 dla odpowiedzi nr 2

* all_userdata * zwraca tablicę wszystkich danych użytkownika, zwróci coś takiego:

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 * ustawia niestandardowe dane sesji.

Dzieje się tak, ponieważ CodeIgniter jest w stanie zidentyfikować twoją sesję poprzez * all_userdata *

Ma nadzieję, że to pomoże, nie wahaj się zadawać dalszych pytań =)


1 dla odpowiedzi nr 3

Dodanie odniesienia do mojego komentarza na górze

$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");
}