我相信你是安全的。
求你了,我需要你的帮助。我创建的登录和注销方法是用户控制器,运行良好。当我按预期注销并重定向到登录页面时。我发现,当我点击浏览器上的向后箭头时,我可以通过登录访问管理门户。
用代码实现的进行解释
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class UserController extends CI_Controller {
public function __construct(){
parent::__construct();
$this->load->model('UserModel');
$data = array();
}
public function login(){
$this->load->view('login/login');
}
public function loginForm(){
$data = array();
$data['username'] = $this->input->post('username');
$data['password'] = $this->input->post('password');
$check = $this->UserModel->checkUser($data);
if($check){
$sdata = array();
$sdata['id '] = $check->id;
$sdata['userlogin'] = TRUE;
$this->session->set_userdata($sdata);
redirect('AdminController');
}else{
$sdata = array();
$sdata['msg'] = '<span style="color:red">User name and or password is incorrect</span>';
$this->session->set_flashdata($sdata);
redirect("UserController/login");
}
}
public function logout(){
$this->session->unset_userdata($id);
$this->session->set_userdata('userlogin', FALSE);
$this->session->sess_destroy();
redirect("UserController/login");
}
}
当我刷新我的URL时,登录页面运行良好
我登录并重定向到管理员门户,该门户按预期工作
我注销并重定向到登录页面,该页面也像预期的一样正常工作
现在,当我点击";单击返回";浏览器上的箭头,我在没有登录的情况下被重定向到管理门户
我想阻止这种行为。点击返回还应请求登录
请参阅下方的管理员控制器代码
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class AdminController extends CI_Controller {
public function __construct(){
parent::__construct();
}
public function index()
{
$this->load->view('admin/admin_page');
}
}
感谢您的帮助
注意:我使用的是codeIgniter 3.11
谢谢。
我将以下功能添加到我的管理面板中,以防止返回访问
public function __construct(){
parent::__construct();
if (!$this->session->userdata('login_id'))
return redirect("LoginController");
}