在我的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");