我有一个控制器在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视图加载,但如果我点击浏览器的返回按钮,我回到表单。是否有一个为什么使表单页面过期后,它提交,使后退按钮不显示它?
谢谢
后退按钮不工作,因为你从来没有真正重定向到不同的URL。您需要构建代码以使其重定向。我将构建另一个方法来加载评论页面,像这样
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">
也许这能帮到你:
添加以下代码:
<?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' ;
?>