我想查看会话;如果退出它会进入我的网站,否则重定向到“登录”页面;这是我的控制器:
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') );
}
这很好但是当用户进入登录页面时,它会显示登录页面和我的网站主页面!另一方面,即使我死了(参见我的代码中的注释)它没有帮助,它给了我一个空白页面!
由于
答案 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。