如何在codeigniter中检查用户是否登录

时间:2016-09-23 11:58:42

标签: php codeigniter

我正在将此代码用于无法登录而无法访问页面的用户,但它无法阻止用户。

if(! $this->session->userdata('id'))
         return redirect('Login');
   $this->load->view('public/dashboard');

3 个答案:

答案 0 :(得分:0)

试试这个开始吧。但通常我使用另一种策略,我在视图中创建if语句。 如果这不适合您,我会进一步检查。

org.apache.shiro.realm.ldap.JndiLdapRealm

答案 1 :(得分:0)

你能做的就是这样的事情

application / core / MY_Controller.php

<?php 

class MY_Controller extends CI_Controller {

    public function __construct() {
        parent::__construct();
        $route = $this->router->directory . $this->router->fetch_class();

        // echo $route;

        // Ignore any controllers not to be effected 
        $ignore = array(
            'dirname/controllername',
        );

        // If the user has not logged in will redirect back to login

        if (!$this->session->userdata('id') && !in_array($route, $ignore)) {
            $this->session->unset_userdata('id');
            redirect($this->config->item('base_url') . 'login');
        }
    }
}

在控制器上将CI_Controller更改为MY_Controller

class Example extends MY_Controller {

     public function index() {

    }

}

答案 2 :(得分:0)

if( $this->session->userdata('id') == "")
{
   redirect('Login');
}
else
{

   redirect('dashboard');
}

此处登录和仪表板都是控制器名称。