如何使用url在codeigniter中输入来阻止进入网站

Ran*_*ath 0 php codeigniter

我有一个使用CodeIgniter的网站,现在几乎完成了.我的问题是,即使我已经实现了会话并维护了一个登录系统,一个人可以通过在浏览器地址栏中输入URL来访问任何页面.

我已经实施了患者注册会议,如下所示:

function index(){
    $this->is_logged_in();
}   

function log_out(){
    $this->session->sess_destroy();
    redirect('login_controller');   
}

function is_logged_in(){
    $is_logged_in = $this->session->userdata('is_logged_in');

    if(!isset($is_logged_in)||$is_logged_in!= TRUE ){
        redirect('login_controller');
    }else{
        $this->main();      
    }
}
Run Code Online (Sandbox Code Playgroud)

匿名用户无法通过键入控制器名称来访问系统,如下所示:

HTTP://localhost/demo_site/index.php/register_controller

但他们可以这样做:

HTTP://localhost/demo_site/index.php/register_controller/search_patient

通过键入控制器名称无法访问人员,但可以通过键入比控制器更长的URL来进入系统,如上所示.

这里有什么问题?有什么可能的解决方案?

tHe*_*SiD 8

您必须在控制器的构造函数中实现登录检查.

无论何时调用控制器,都应检查用户是否已登录 - 如果不是,则重定向到登录页面或错误页面.