重定向到登录页面 - Codeigniter

时间:2014-01-26 23:37:39

标签: php codeigniter

我想查看会话;如果退出它会进入我的网站,否则重定向到“登录”页面;这是我的控制器:

function __construct() {
    parent::__construct();
    $this->is_logged_in();
}

public function index($failed=FALSE) {
    $data['main_content'] = 'login_view';
    $data['failed_validation'] = $failed;
    $this->load->view('includes/template', $data);
}

public function is_logged_in() {
    if ($this->session->userdata('f_name') != null) {
        return;
    } else {
        $this->index();
       //die()// This one does not help either
    }
}

public function display_site() {
    $data['main_content'] = 'site_view';
    $this->load->view('includes/template', $data);
}

这是建议之后的版本(但仍然是同样的问题!):

控制器:

function __construct() {
    parent::__construct();
    $this->load->model('user_model');
    if ($this->user_model->is_logged_in() == FALSE) {
        $this->index();
    }
}

public function index($failed=FALSE) {
    $data['main_content'] = 'login_view';
    $data['failed_validation'] = $failed;
    $this->load->view('includes/template', $data);
}

public function login() {
    $data['main_content'] = 'login_view';
    $data['failed_validation'] = FALSE;
    $this->load->view('includes/template', $data);
}

型号:

  public function is_logged_in()
    {
         return ($this->session->userdata('is_logged_in') );
    }

这很好但是当用户进入登录页面时,它会显示登录页面和我的网站主页面!另一方面,即使我死了(参见我的代码中的注释)它没有帮助,它给了我一个空白页面!

由于

2 个答案:

答案 0 :(得分:2)

登录控制器:

class Login extends CI_Controller {

    public function __construct() {
        parent::__construct();
    }

    public function index() {
        $this->load->view('includes/login');
    }
}

主控制器:

class Main extends CI_Controller {
    public function __construct() {
        parent::__construct();      
            $this->load->model('user_model');
            if (!$this->user_model->is_logged_in()) {
               redirect(base_url().'login', 'location', 301);
            }   
    }

    public function index() {
        $this->load->view('includes/main');
    }
}

答案 1 :(得分:0)

您将需要使用属于url_helper的redirect()函数。一旦你加载了,你就可以简单地调用redirect(" yoururlhere.com")因为你可能经常使用它,你可能想要自动加载它而不是每次都加载lib。