Как мне обновить сеанс CI, не разрушая его - PullRequest
0 голосов
/ 07 мая 2020
    //setting session data
    $loginData = array(
      'name'  => 'Rajeev Singh',
      'email' => 'rajeev@gmail.com',
      'age'   => '21',
    );
    $this->session->set_userdata('loginData',$loginData);

//accessing session data
$name = $this->session->userdata('loginData')['name'];

предположим, что если мои пользователи хотят обновить его / ее данные, мне нужно изменить сеанс, но я не могу обновить значение сеанса

в настоящее время то, что я делаю, создает совершенно новый сеанс, который изменяет мой идентификатор сеанса Я хотел обновить одно значение моего сеанса без изменения идентификатора сеанса

//accessing session ID
$sessionID =  $this->session->session_id;

Ответы [ 3 ]

0 голосов
/ 08 мая 2020

Это обновит вашу переменную сеанса 'loginData' с помощью Codeigniter без разрушения сеанса.

Я использую $data_update, где ваша пользовательская переменная будет go.

$this->session->set_userdata('loginData', $data_update) ;

Страница сеансов Codeigniter [1] http://codeigniter.com/user_guide/libraries/sessions.html

0 голосов
/ 08 мая 2020

Просто перезапишите сеансы

//initial set
loginData = array(
      'name'  => 'Rajeev Singh',
      'email' => 'rajeev@gmail.com',
      'age'   => '21',
    );

$this->session->set_userdata('loginData', $loginData);

//overwritting

$loginData = array(
      'name'  => 'new name',
      'email' => 'new email',
      'age'   => 'new age',
    );
$this->session->set_userdata('loginData', $loginData);

Взгляните на здесь .

0 голосов
/ 08 мая 2020
print_r($_SESSION["logindata"]); 

$_SESSION["logindata"]["name"]="updated name";

print_r($_SESSION["logindata"]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...