CodeIgniter "flashdata" не работает

Я использую CodeIgniter 2.1.0, я хочу, чтобы после вставки данных в базу данных получилось сообщение типа «Ваша информация была успешно обновлена». Для этой работы у меня есть функция CI_Controller:

function myCiInser(){ ... Here is my query ... //$data: this var is result query that is true if($data){ $this -> session -> set_flashdata('message', 'Your information was successfully updated.'); redirect('url/myurl'); } } 

И я имею в виду, как:

 <?php $message = $this->session->flashdata('message'); if($message){ echo '<div id="error_text">' . $message . '</div>'; } //I test this : "echo $message;" but don't give output ?> 

Но я не даю сообщение, но redirect выполняется и работает верно. и в базе данных в столбце user_data таблицы ci_sessions user_data меня есть следующее:

a: 2: {s: 9: "user_data"; s: 0: ""; s: 19: "flash: new: message"; s: 42: "Ваша информация была успешно обновлена.";}

Как решить эту проблему?

ОБНОВИТЬ:

У меня была следующая ошибка (я использую из chorme и Ctrl + Shift + ji получить это предупреждение):

Не удалось загрузить ресурс: сервер ответил статусом 404 (не найден)

И я исправлю это (теперь у меня нет ошибки), но все равно та же проблема в сообщении дисплея. что я делаю?

Из документации класса Classigniter Session Class , относящейся к Flashdata, можно прочитать:

CodeIgniter поддерживает «flashdata» или данные сеанса, которые будут доступны только для следующего запроса сервера, и затем автоматически очищаются.

Ваша проблема может заключаться в том, что при перенаправлении процесс принимает более одного запроса, очищая ваши flashdata.

Чтобы убедиться, что это так, просто добавьте следующий код в конструктор контроллера, к которому вы перенаправляете:

 $this->session->keep_flashdata('message'); 

Это сохранит данные flashdata для другого запроса сервера, что позволит использовать его впоследствии.

У меня тоже была эта проблема. Я не помню, где я видел, но вот мое решение.

 redirect('url/myurl','refresh'); 

CodeIgniter не рассматривал перенаправление как другой запрос. Поэтому flashdata не была настроена в перенаправлении, но она была на следующей странице, которую я загрузил.

Использование сеансов с базой данных иногда вызывало у меня проблемы. Я рекомендую установить $ config ['sess_use_database'] = FALSE; в config.php и посмотрите, что flashdata работает нормально.

Вы также можете использовать базу данных для сеансов, но вы должны установить элементы конфигурации:

 $config['sess_match_ip'] = FALSE; $config['sess_match_useragent'] = FALSE; 

Таким образом, сессия flashdata будет работать снова

// Устанавливаем данные флэш-памяти в нашем файле контроллера

 $this->session->set_flashdata('sessionkey', 'Value'); 

// После этого нам нужно использовать функцию перенаправления

 redirect("admin/signup"); 

// Получение данных Flash

 $this->session->flashdata('sessionkey'); 

За исключением одной страницы, я могу отображать / передавать значения с помощью сеанса. Я попытался использовать var_dump ($ this-> session), и я получаю ["flash: old: Array"] => bool (false) ["flash: new: message"] => string (10) "My Message"} , Я попытался повторить данные флэш-памяти на странице без перенаправления сразу после установки данных, но результат был таким же. Я рекомендую обрезать код и попытаться установить сеанс на других страницах. Если проблема не устранена. Проверьте свой var_dump. Это может быть не решение. Но я думаю, что это может помочь.

UPDATE : сокращение пробелов и новых строк в тексте. Я проходил 2 длинных предложения с пустыми разрывами строк и пробелами.

 if (0)//Assume this condition is false { $this->load->view('error_page'); // Generate validation error } else { //Show success message $data = array( 'message' => 'My message' ); $this->session->set_flashdata($data); $this->session->keep_flashdata($data); echo $this->session->flashdata('message'); //echo var_dump($this->session); //redirect(base_url().'success_page'); } 

У меня была та же проблема, после проверки кода, который я нашел, я называю это $ this-> session-> sess_destroy (); … что вызывает проблему.

404 (не найдено) считается 1 запросом сервера. он удалит ваши flashdata.

Поскольку я наблюдаю за codeigniter flashdata. Когда я использую его во втором запросе с использованием метода codeigniter redirect (), он отлично работает в mozila, но в случае хром он не работает.