douyan1882 2015-09-20 11:57
浏览 47

Codeigniter,在表单提交后阻止浏览器的后退按钮

I have a Controller in Codeigniter like following :

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Charity extends MY_Controller {
    public function index()
    {
        if($this->input->method() === 'post'){
            $data['name'] =  $this->input->post('name');
            $this->load->view('review_page', $data); 
        }else{
            $this->load->view('charity');
        }
    }
}

the views are :

charity.php 
<form method="post" action="/">
<input name="name" type="text"/>
<input value="send" type="submit"/>
</form>

review_page.php
<h1><?= echo $name; ?></h1>

When I submit the form I get the review_page view loaded but if I click on the browser's back button I come back to the form. Is there a why to make the form page expired after it is submitted so that the back button does not show it?

Thanks

  • 写回答

2条回答 默认 最新

  • douseda0009 2015-09-20 12:03
    关注

    Back button does not work because you never actually redirect to a different URL. You need to build your code so that it redirects. I would build another method that loads the review page like so

    public function index() {
        $this->load->view('charity');
    } 
    
    public function reviews(){
      if($this->input->method() === 'post'){
          $data['name'] =  $this->input->post('name');
          $this->load->view('review_page', $data); 
      } else {
          redirect('charity');
      }
    }
    

    And your html

    <form method="post" action="reviews">
    
    评论

报告相同问题?

悬赏问题

  • ¥20 删除和修改功能无法调用
  • ¥15 kafka topic 所有分副本数修改
  • ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
  • ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
  • ¥40 串口调试助手打开串口后,keil5的代码就停止了
  • ¥15 电脑最近经常蓝屏,求大家看看哪的问题
  • ¥60 高价有偿求java辅导。工程量较大,价格你定,联系确定辅导后将采纳你的答案。希望能给出完整详细代码,并能解释回答我关于代码的疑问疑问,代码要求如下,联系我会发文档
  • ¥50 C++五子棋AI程序编写
  • ¥30 求安卓设备利用一个typeC接口,同时实现向pc一边投屏一边上传数据的解决方案。
  • ¥15 SQL Server analysis services 服务安装失败