在代码点火器中重新加载页面后清除消息


Clear message after reloading page in codeigniter

在我的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

然后警告消息会显示OK。但一旦消息显示并且我重新加载页面,我希望消息被清除,即使在url中有标记。

我的问题是一旦出现警告消息,然后我重新加载页面如何使用上面的代码清除消息?

请注意:不想使用flashdata,因为当使用$config['sess_driver'] = 'files'; 时,它会在codeigniter 3版本中创建额外的文件

您可以使用jquery设置超时功能删除警告消息。让消息显示所需的秒数,然后将其删除。

CI具有:

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

你可以用

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

重定向后始终清除闪存数据。

你可以加载临时数据:

$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");