0

我相信你会保持安全。

拜托我需要你的帮忙。我创建的登录和注销方法是工作正常的用户控制器。当我注销并按预期重定向到登录页面时。我发现当我单击浏览器上的后退箭头时,我可以通过登录访问管理门户。

实现代码的解释

<?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

4

1 回答 1

0

谢谢。

我将以下功能添加到我的管理面板以防止返回访问

public function __construct(){
        parent::__construct();
        if (!$this->session->userdata('login_id'))
             return redirect("LoginController");
    }
于 2020-08-15T00:34:54.167 回答