Код Igniter Flashdata не всегда сохраняет значения после перенаправления - PullRequest
0 голосов
/ 07 марта 2019

Так что это действительно странно.

Я недавно обнаружил флэш-данные Code Ignitor, и это именно то, что мне нужно.

Однако я замечаю, что иногда у меня возникают проблемы сЭто.Разделив его прямо на скелеты (функция one буквально не делает ничего, кроме этого, кроме использования реальных данных, а функция two ничего не делает перед извлечением флэш-данных, поэтому я уверен, что могу свести их к этому).

controller_one:

function one()
{
  $data['foo'] = 'bar';
  $this->session->set_flashdata('extra_data', $data);
  redirect('controller_two/two');
}

контроллер-два:

function two()
{
  if($this->session->flashdata('extra_data'))
  {
    var_dump($this->session->flashdata('extra_data'));
  }
}

Третий файл - это просто статическая страница со статическимссылка на controller_one / one скажем index.

Теперь, если я пойду по индексу и нажму на ссылку, он будет правильно перенаправлять и выводить данные - как и ожидалось.

Теперь - и вот где он получаетстранно.Если перейти к индексу - подождать 10 минут + , а затем щелкнуть ссылку, он перенаправляется, но флэш-данные пусты (NULL).

Я действительно не вижу, как ждать на статической страниценажатие на статический объект может повлиять на то, что происходит во время перенаправления между двумя функциями, что приводит к потере данных флэш-памяти, поскольку эти флэш-данные даже не устанавливаются до тех пор, пока не будет нажата эта ссылка, и перенаправление происходит сразу после этого в обоих случаях.

Я также пытался var_dump($this->session->flashdata('extra_data')); die; непосредственно перед перенаправлением, и в обоих случаях данные установлены и исправлены - без разницы, поэтому они должны быть потеряны во время самого перенаправления - я просто не могу понять, как ждатьдо того, как это повлияет на это, но это должно быть - каким-то образом.

Мне довольно легко обойти, используя стандартные сеансы или что-то еще, но, поскольку флэш-данные делают именно то, что я хочу, кажется более уместным использовать это- это просто не работает, если пользователь задерживается на странице до того, как она будет установлена.

Так что любые теории относительно того, почему, или, что еще лучше, soluс благодарностью.

...