2016-08-01 3 views
1

На моем контроллере CodeIgniter входа у меня есть этот код нижеClear сообщений после перезагрузки страницы в CodeIgniter

$session_userdata_token = $this->session->userdata('token'); 
$input_token = $this->uri->segment(2); 

if (!isset($session_userdata_token) && isset($input_token)) { 
    $this->error['warning'] = 'Your session has expired!'; 
} 

Если сессия истекает перенаправляет войти в контроллер с маркером в URL, как

http://localhost/cookie/login/0cY9WNUvodIhBrJi 

Тогда появится предупреждающее сообщение. Но как только сообщение появляется, и я перезагружаю страницу, я бы хотел, чтобы сообщение очистилось, хотя маркер в url.

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

Примечание Пожалуйста, прочитайте: Не хотите использовать flashdata, поскольку она создает дополнительные файлы в CodeIgniter 3 версии при использовании $config['sess_driver'] = 'files';

+0

Итак, вы хотите, чтобы выполнить тот же самый код, если пользователь перезагружает страницу, но не хочет, чтобы снова отобразить предупреждение? –

+0

@GustavoRubio Как только сообщение отобразится, если пользователь решил перезагрузить страницу, я бы хотел, чтобы сообщение очистилось .. – user4419336

+0

вы можете использовать flashdata, если хотите только для целей temp. – vaibhav

ответ

0

Вы можете удалить предупреждающее сообщение с помощью Jquery задать время ожидания. Пусть сообщение будет отображаться для желаемого количества секунд и после этого удалите его.

0

CI имеет:

$this->session->set_flashdata('somename','data'); 

вы можете использовать его

echo $this->session->flashdata('somename'); 

флэш-данные всегда расчищенных после редиректа.

Вы можете АЛОС TempData:

$this->session->set_tempdata('success', 'Message', 10); # 10 means secods 
echo $this->session->tempdata('success'); 

Через 10 секунд он будет удален

Вы можете использовать HTML5 хранения браузера:

, если вы хотите установить его от контроллера вы можете использовать:

echo "<script> localStorage.setItem('bgcolor', 'red')</script>"; 

Для установки:

localStorage.setItem('bgcolor', 'red'); 

Чтобы получить:

localStorage.getItem('bgcolor'); 

удалить:

localStorage.removeItem("lastname"); 
+0

Причина, по которой я не хочу использовать данные флэш-памяти, о которых идет речь, заключается в том, что версии codeigniter 3 создают дополнительные файлы для этого при использовании файлов '$ config ['sess_driver'] = 'files';' – user4419336

+0

Является ли это чувствительным данные? Если вы используете обычные данные, вы можете использовать HTML5 LocalStorage. localStorage.setItem ('bgcolor', 'red'); вы можете получить localStorage.getItem ('bgcolor'); –

Смежные вопросы