当我点击返回按钮时,我得到了确认表单提交错误。如何防止这个问题?请提供解决方案。我试图登录到管理面板,并在管理中编辑以下代码
Admin controller:
public function index()
{
$data = $this->data;
$this->load->view('admin/login.php',$data);
}
public function login()
{
$data = $this->data;
$username=$this->input->post("username");
$password=$this->input->post("password");
if($username=='admin'&&$password=='admin123')
{
$this->load->view('admin/home.php',$data);
}
else
{
$data['error']="Invalid Username or Password";
$this->load->view('admin/login.php',$data);
}
}
/* Function For Displaying the home page*/
public function home()
{
$data = $this->data;
$this->load->view('admin/index.php',$data);
}
/* Common Function for calling the View*/
public function _admin_output($output = null)
{
$output->base=$this->config->item('base_url');
$output->site=$this->config->item('site_url');
$output->css=$this->config->item('css');
$output->js=$this->config->item('js');
$this->load->view('admin/home_page.php',$output,'refresh');
}
public function loadSlidingimg()
{
$crud = new grocery_CRUD();
$crud->set_table('tbl_slideimg');
$crud->columns('imgname','active');
$crud->set_subject('Frontpage Sliding Images');
$crud->display_as('imgname','Image name');
$crud->set_field_upload('imgname','uploads');
$crud->display_as('active','Active Flag');
$crud->callback_after_update(array($this,'rename_slideimg_db'));
$crud->callback_after_insert(array($this,'rename_slideimg_db'));
$output = $crud->render();
$this->_admin_output($output);
}
}
请提供解决方案
这是因为将您带到该页面的操作是POST请求。浏览器想要你从无意的重复订购/支付/任何当你回去,当你加载该页面需要做表单再次张贴。
如何解决这个问题?我通常将用户重定向到一个由GET请求加载的页面,它甚至可以是同一个页面,看看这个答案:https://stackoverflow.com/a/3968038/357403
或者,您可以修改历史记录:https://developer.mozilla.org/en-US/docs/Web/API/History_API
另外,请参阅PRG模式:https://en.wikipedia.org/wiki/Post/Redirect/Get
试试这个代码格式:
$this->load->view('admin/home.php', 'refresh', $data);
或
redirect('home', 'refresh');