Flashdata不是笨得到清理(Flashdata not getting cleared in

2019-10-18 16:00发布

我使用笨2.1.4和我都面临着flashdata一些问题。 当我成功提交记录我可以显示flashdata消息。 但是,如果从那里被显示flashdata消息的页面转到其他页面,然后回去用浏览器后退按钮前一页它再次表明我flashdata消息。
如何清除flashdata消息一旦使用它? 我认为它不是flashdata发出的缓存问题。 我很困惑,为什么这种情况正在发生。 如果它的缓存问题,那么如何去除呢?

下面是我所使用的代码,

//In the manage of controller
$this->session->set_flashdata('message', "Record updated successfully.");

// In the view of controller
$data['message'] = $this->session->flashdata('message');

// In the view page
echo $message;

Answer 1:

你在控制器代码是正确的

//In the manage of controller
$this->session->set_flashdata('message', "Record updated successfully.");
redirect('controller_name/function_name','refresh');

现在考虑使用这样

if($this->session->flashdata('message')){echo $this->session->flashdata('message');}

希望它会工作



Answer 2:

闪光后,才在下一次刷新消失



Answer 3:

如果要清除set_flash在控制器或其他视图文件,那么你可以使用这个简单的代码。

$this->session->set_flashdata('error', 'User not found...'); //create set_flash

破坏 set_flash

//echo "<pre>"; print_r($_SESSION); die; //for check 

if(isset($_SESSION['error'])){
    unset($_SESSION['error']);
}


Answer 4:

$this->session->set_flashdata('message', "Record updated successfully.");

设置完成后的flashdata重定向到一些功能或相同的功能。



Answer 5:

必须 经过地方的页面重定向 $this->session->set_flash('item','value');

例如

if ($this->form_validation->run() == FALSE){
    $this->session->set_flashdata('error',validation_errors());
    redirect(base_url().'user/login');
}
else{
    $this->session->set_flashdata('success','Thank you');
    redirect(base_url().'user/login');
}

通常开发商犯了一个错误,当他们将数据提交到同一页面。 他们设定闪光的数据,但忘了重定向。



Answer 6:

如果你在同一个控制器功能刷新flashdata不会deleted.Also要在浏览器中来回简化版,影响flashdata。 清除flashdata重定向到另一个控制器功能,它会工作。



文章来源: Flashdata not getting cleared in Codeigniter