0

我有这个问题,在我提交表单后,我执行“F5”或“刷新”仍然有提交的数据,每次我按“F5”与我第一次提交表单时相同的数据,然后它变成重复条目,我尝试清除CI中的POST数据以及field_data,仍然有提交的值,我不知道为什么它不能被困在form_validation哪里,我设置了一个需要的规则。

$this->load->library('form_validation');

$this->form_validation->set_rules('name', 'Name', 'required');
$this->form_validation->set_rules('email', 'Email', 'required|valid_email');
$this->form_validation->set_rules('comment','Comment','required');

if(/*form validation is false*/) //fail
{
   // some code for incorrect values
}
else //success
{
   $_POST = array();
   $this->form_validation->clear_field_data();
  //and some code for views
}

现在,在一个正常的过程中,它没有错误,但是当我按下“F5”或刷新页面时,数据再次提交,从而再次将其插入数据库,我真的不知道为什么它已经发生了清除了从现场数据到实际帖子数据的所有内容,如果您有任何知识,请分享

顺便说一句,我form_validation是定制的,扩展了 CI 的原生 form_validation

4

3 回答 3

0

尝试使用redirect函数而不是$this->load->view

你可以在这里看到

于 2013-04-14T03:35:50.027 回答
0

您可以使用重定向(首选)或使用服务器端标头不存储发布数据:

header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header ("Pragma: no-cache"); // HTTP/1.0
于 2013-04-14T04:17:28.917 回答
0

试试这个

if ($this->form_validation->run() == FALSE) 
{
   $data['Name']['value'] = $this->input->post('name', TRUE);
   $this->load->view("someview",$data);
}
else
{
   $data['Name']['value'] = "";
   $this->load->view("someview",$data);

}
于 2013-04-14T05:31:24.490 回答