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

时间:2015-09-20 11:57:24

标签: php codeigniter

我在Codeigniter中有一个控制器,如下所示:

<?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');
        }
    }
}

观点是:

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

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

当我提交表单时,我会加载review_page视图但是如果我点击浏览器的后退按钮,我会回到表单。是否有原因使表单页面在提交后过期,以便后退按钮不显示?

由于

2 个答案:

答案 0 :(得分:1)

后退按钮不起作用,因为您实际上从未实际重定向到其他网址。您需要构建代码以便重定向。 我会构建另一种加载评论页面的方法

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');
  }
}

和你的HTML

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

答案 1 :(得分:0)

也许这会有所帮助:

在charity.php的顶部添加以下代码:

 <?php
   session_start();
   if ( isset($_SESSION['isSubmit']) and $_SESSION['isSubmit'] == 'ok' )
   {
     echo 'page is expired: form already submit !';
     session_destroy();
   }
 ?>

在review_page.php的顶部添加以下代码:

 <?php
   session_start();
   $_SESSION['isSubmit'] = 'ok' ;
 ?>