Php 按下codeigniter中的后退按钮后会话不工作
我的项目是学生教师社区网站 它有两种类型的用户教师和学生。 然后,在访问另一个控制器后,他们首先访问主页,然后当用户从主控制器按“注销”并在浏览器中按“后退”按钮时,登录页面出现,但当用户第二次按“后退”按钮时,它显示上一个会话。因此,会话不适用于其他控制器。我在下面显示我的控制器和视图。如何防止后退按钮问题? 登录视图:Php 按下codeigniter中的后退按钮后会话不工作,php,codeigniter,session,session-cookies,Php,Codeigniter,Session,Session Cookies,我的项目是学生教师社区网站 它有两种类型的用户教师和学生。 然后,在访问另一个控制器后,他们首先访问主页,然后当用户从主控制器按“注销”并在浏览器中按“后退”按钮时,登录页面出现,但当用户第二次按“后退”按钮时,它显示上一个会话。因此,会话不适用于其他控制器。我在下面显示我的控制器和视图。如何防止后退按钮问题? 登录视图: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php include_once('loginhead.php'); ?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Simple Login with CodeIgniter</title>
</head>
<body onunload="javascript:history.go(1)">
<?php echo validation_errors(); ?>
<?php echo form_open('verifylogin'); ?>
<div class="maincontent_area">
<div class="container">
<div class="row">
<div class="span7">
<div class="carousel slide" id="artists">
<ol class="carousel-indicators">
</ol>
<div class="carousel-inner">
<div class="item active">
<a href="#"><img src="<?php echo base_url().'img/image_1.jpg'; ?>" alt="" /></a>
<div class="carousel-caption">
<h4>Online Educational Community Forum</h4>
</div>
</div>
<div class="item">
<a href="#"><img src="<?php echo base_url().'img/image_2.jpg'; ?>" alt="" /></a>
<div class="carousel-caption">
<h4>Online Educational Community Forum</h4>
</div>
</div>
<div class="item">
<a href="#"><img src="<?php echo base_url().'img/image_3.jpg'; ?>" alt="" /></a>
<div class="carousel-caption">
<h4>Online Educational Community Forum</h4>
</div>
</div>
<div class="item">
<a href="#"><img src="<?php echo base_url().'img/image_4.jpg'; ?>" alt="" /></a>
<div class="carousel-caption">
<h4>Online Educational Community Forum</h4>
</div>
</div>
</div>
<a class="carousel-control left" href="#artists" data-slide="prev"><</a>
<a class="carousel-control right" href="#artists" data-slide="next">></a>
</div>
</div>
<div class="span5">
<div class="login_area">
<h4 class="text-info">Login</h4>
<p class="text-success">Members only</p>
<form action="http://localhost/Login/index.php/verifylogin" method="post" accept-charset="utf-8"> <label for="username">Username:</label>
<input type="text" size="20" id="username" name="username" required/>
<br/>
<label for="password">Password:</label>
<input type="password" size="20" id="passowrd" name="password" required/>
<br/>
<input class="btn btn-info" type="submit" value="LogIn"/><br>
<h6><a href="http://localhost/Login/index.php/Forgotpass/forgot_password">Forgot password</a></h6>
</form>
</div>
<div class="signup_area">
<h4 class="text-info">Sign Up</h4>
<p class="text-success">If you are not a Member yet.</p>
<script>
$(document).ready(function() {
$("#div1").hide();
$("#div2").hide();
$("#student").hide();
$("#teacher").hide();
$("#clear").hide();
$("#signup").click(function() {
$("#student").show();
$("#teacher").show();
//$("#div1").show();
$("#signup").hide();
});
$("#student").click(function(){
$("#student").hide();
$("#div1").show();
$("#div2").hide();
$("#clear").show();
})
$("#teacher").click(function(){
$("#div1").hide();
$("#div2").show();
$("#teacher").hide();
$("#clear").show();
$("#signup").hide();
})
$("#clear").click(function(){
$("#div1").hide();
$("#div2").hide();
$("#teacher").hide();
$("#clear").hide();
$("#student").hide();
$("#signup").show();
})
});
</script>
<p id="signup" class="btn btn-primary">Click Here</p>
<p id="student" class="btn btn-info">Student</p>
<p id="teacher" class="btn btn-info">Teacher</p>
<p id="clear" class="btn btn-inverse">Clear</p>
<div id="div1">
<h3 class="text-info">For Student SignUp</h3>
<form action="http://localhost/Login/index.php/student_signup/registration" method="post" accept-charset="utf-8"> <label for="name">Name:</label>
<input type="text" name="sign_name" id="name" required/>
<input type="hidden" value="0" name="flag"/>
<br/>
<label for="email">ID:</label>
<input type="text" name="sign_id" id="id" required/>
<br/>
<label for="email">Email:</label>
<input type="text" name="sign_email" id="email" required/>
<br/>
<label for="password">Password: </label>
<input type="password" name="sign_password" id="sign_password" required/>
<br/>
<label for="confirm_password">Confirm Password</label>
<input type="password" name="sign_confirm_password" id="sign_confirm_password" required/>
<br/>
<input class="btn btn-primary" type="submit" value="Submit"/>
</form>
</div>
<div id="div2">
<h3 class="text-info">Teacher's SignUp</h3>
<form action="http://localhost/Login/index.php/teacher_signup/t_registration" method="post" accept-charset="utf-8"> <label for="name">Teacher Name:</label>
<input type="text" name="teacher_sign_name" id="name" required/>
<input type="hidden" value="1" name="flag"/>
<br/>
<label for="email">ID:</label>
<input type="text" name="teacher_sign_id" id="id" required/>
<br/>
<label for="email">Email:</label>
<input type="text" name="teacher_sign_email" id="email" required/>
<br/>
<label for="password">Password: </label>
<input type="password" name="teacher_sign_password" id="sign_password" required/>
<br/>
<label for="confirm_password">Confirm Password</label>
<input type="password" name="teacher_sign_confirm_password" id="confirm_password" required/>
<br/>
<input class="btn btn-primary" type="submit" value="Submit"/>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
session_start(); //we need to call PHP's session object to access it through CI
class Home1 extends CI_Controller {
function __construct()
{
parent::__construct();
// $this->output->nocache();
header("Expires: Tue, 01 Jan 2013 00:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
$this->load->model('user','',TRUE);
}
function index()
{
if($this->session->userdata('logged_in'))
{
$session_data = $this->session->userdata('logged_in');
$data['username'] = $session_data['username'];
$this->load->view('teacherview', $data);
}
else
{
//If no session, redirect to login page
redirect('login', 'refresh');
}
}
function logout1()
{
$this->session->unset_userdata('logged_in');
$this->session->sess_destroy();
redirect('home1', 'refresh');
}
}
?>
class AnswerController extends CI_Controller {
public function index() {
$loggedIn = $this->session->userdata('logged_in');
if ($loggedIn) {
$config['base_url'] = base_url() . 'index.php/AnswerController/index';
$config['total_rows'] = $this->db->count_all('questions');
$config['per_page'] = 9;
$this->load->library('pagination');
$this->pagination->initialize($config);
//$this->load->model('Answer');
$this->load->model('Answer');
$data['questions'] = $this->Answer->getQuestions($config['per_page'], $this->uri->segment(3));
$this->load->view('answerView', $data);
} else {
redirect('login', 'refresh');
}
}
然后单击锚定,如下面所示注销:
class AnswerController extends CI_Controller {
public function index() {
$loggedIn = $this->session->userdata('logged_in');
if ($loggedIn) {
$config['base_url'] = base_url() . 'index.php/AnswerController/index';
$config['total_rows'] = $this->db->count_all('questions');
$config['per_page'] = 9;
$this->load->library('pagination');
$this->pagination->initialize($config);
//$this->load->model('Answer');
$this->load->model('Answer');
$data['questions'] = $this->Answer->getQuestions($config['per_page'], $this->uri->segment(3));
$this->load->view('answerView', $data);
} else {
redirect('login', 'refresh');
}
}
anchor('home1/logout1','Logout');
从home1控制器注销后,单击“上一步”按钮,然后单击“会话工作”并重定向到登录页面
但当第二次按下后退按钮时,它转到另一个控制器会话时不工作
请任何人帮帮我……#1请使用现成的授权库(例如查看更多)#2请正确地使用
base\u url()
base\u url('index.php/AnswerController/index')它的方式更好,不是吗#3重定向时,只需执行完全重定向(不带刷新参数)#4请再看一下注释1。代码太多了。老兄,把重要的部分给我们。谢谢老兄@凯西