Невозможно получить значение flashdata или userdata для другой функции - PullRequest
0 голосов
/ 07 сентября 2018

Я пытаюсь получить значение flashdata и userdata от одной функции к другой в пределах одного контроллера. Кажется, что я использую перенаправление в функции A для функции B. Поэтому, когда функция загружается, она не читает значение и становится нулевой. Я использовал var_dump () и print_r, но значения равны нулю. Пожалуйста, найдите мой пример кода следующим образом: -

Контроллер: Sample.php

я объявил lib сеанса в начале

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

при попытке с $this->session->userdata

public function A {

 $city = $this->input->post('Ucity');
 $depart = $this->input->post('Udepartment');

 $this->session->set_userdata('City',$city);
 $this->session->set_userdata('Department',$depart);

 //I guess the issue is coming overhere. When it redirects, it loses its values      
 redirect ('/Sample/B/');

}


public function B {

$getCity = $this->session->userdata('City');
$getDept = $this->session->userdata('Department');

  if(isset($getCity)) {
   $data['ct'] = $getCity;   
   $data['dt'] = $getDept;     

     $this->load->view(header);
     $this->load->view(menu);
     $this->load->view(fetchEmp, $data);
     $this->load->view(footer);

  }
    else {
    var_dump($getCity);
    print_r($getCity);
  }
}

при попытке с $this->session->flashdata

public function A {

 $city = $this->input->post('Ucity');
 $depart = $this->input->post('Udepartment');

 $this->session->set_flashdata('City',$city);
 $this->session->set_flashdata('Department',$depart);

 $this->session->keep_flashdata('City');
 $this->session->keep_flashdata('Department');

 //I guess the issue is coming overhere. When it redirects, it loses its values    
 redirect ('/Sample/B/');

}


public function B {

$getCity = $this->session->flashdata('City');
$getDept = $this->session->flashdata('Department');

  if(isset($getCity)) {
   $data['ct'] = $getCity;   
   $data['dt'] = $getDept;     

     $this->load->view(header);
     $this->load->view(menu);
     $this->load->view(fetchEmp, $data);
     $this->load->view(footer);

  }

}

И мой fetchEmp.php (просмотр)

<h1>City: <?php echo $ct .'and department: ' . $dt ?></h1>

Вывод, который я получаю: NULL

1 Ответ

0 голосов
/ 13 сентября 2018

Это очень просто. Flashdata сохранит ваше значение только один раз. Если вы обновите страницу, она потеряет данные. Если вы не собираетесь использовать flashdata, вы можете использовать это, а если вы будете использовать позже, то просто используйте userdata ().

Шаг 1: перейдите к Session.php (в Системах / Библиотека / Сессия) в строке № 314, где написано:

ini_set('session.use_trans_sid',0);

прокомментируйте эту строку, используя //

Теперь в том же файле перейдите к строке 143, где написано:

session_start();

Также прокомментируйте эту строку.

Теперь откройте файл вашего контроллера и прямо в первой строке напишите эту строку:

session_start();

это должно быть самым первым делом в вашем файле controller.php.

Это работает для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...