我知道阻止确认表单重新提交的首选方法'警告是使用GET。但是当使用Codeigniter时,你主要使用POST(在某种意义上,大多数表单辅助函数都不会起作用和其他东西)。
防止'确认表单重新提交的最佳方式是什么?'使用Codeigniter时会发出警告吗?
编辑:人们有很好的想法,但我的问题是这是一个搜索页面,我希望重新提交表单。我无法使用重定向,因为这会消除POST数据。
答案 0 :(得分:1)
尝试在控制器中重定向到自身,重定向将服务该作业,因为下次它将无法获取提交表单,
答案 1 :(得分:1)
Suhindra是正确的。
我在创建博客引擎时使用了该模式。例如,处理博客帖子输入的controller方法以此代码结束 - 重定向到加载页面的位置,而不是直接页面加载:
$this->session->set_flashdata('info', 'blog post created');
$this->load->helper('url');
redirect("/blogs/$posts_id", "refresh");
答案 2 :(得分:0)
你可以在成功和完成工作后取消表格的价值。检查我的答案,我遇到同样的问题:
Clear form data after success codeigniter using php not jquery
答案 3 :(得分:0)
使用 redirect("./conrtollerName/SETTING/","refresh");
而不是 $this->load->view('SETTING');
答案 4 :(得分:0)
发送请求后清除缓存
$this->output->set_header('HTTP/1.0 200 OK');
$this->output->set_header('HTTP/1.1 200 OK');
$this->output->set_header('Last-Modified: ' . gmdate("D, d M Y H:i:s") . ' GMT');
$this->output->set_header('Cache-Control: no-store, no-cache, must-revalidate');
$this->output->set_header('Cache-Control: post-check=0, pre-check=0');
$this->output->set_header('Pragma: no-cache');
$this->load->view('header', $data);
$this->load->view('nav', $data);
$this->load->view('searchdesigns', $data);
$this->load->view('footer', $data);