我退出之后不知道为什么在is_logged_in()函数中,页面 〜/ home /成员变得空白。如果我评论退出;它可以加载视图页面。附: $ is_logged_in尚未设置。
<?php
class Home extends CI_Controller {
function __construct() {
parent::__construct();
$this->is_logged_in();
}
function members() {}
function is_logged_in() {
$is_logged_in = $this->session->userdata('is_logged_in');
if(!isset($is_logged_in) || $is_logged_in != true) {
$data['main_content'] = 'login_failure';
$this->load->view('inc/template', $data);
//exit();
}
}
}
?>
答案 0 :(得分:1)
页面为空白,因为退出后无需显示此内容
public function is_login() {
$is_login=$this->session->userdata('is_login');
if(!isset($is_login) || $is_login !=true)
{
//don;t echo the message from controller
echo "you don\'t have permission to access this page <a href="reference to login page">Login</a>";
die();
}
}
实际问题是您使用退出。加载视图时,其输出将添加到Output类(system / core / Output.php)。然后通过$ OUT-&gt; _display()行将最终视图数据发送(回显)到浏览器;在system / core / CodeIgniter.php中找到。
由于您在那里抛出了退出程序,脚本会停止,并且永远不会调用该显示方法。
答案 1 :(得分:1)
不使用__construct
中的函数在每个方法中使用。 仅在用户有效时加载,否则将加载日志页
在控制器中
<?php
class Home extends CI_Controller {
function __construct() {
parent::__construct();
}
function index()
{
$result = $this->Model_name->is_logged_in();
if($result==1)
{
//valid user
//$this->load->view("admin_panel");
}
else
{
//invalid user
//$this->load->view("loging");
}
}
}
?>
模型中的
<?php
function is_logged_in()
{
$is_logged_in = $this->session->userdata('is_logged_in');
if(!empty($is_logged_in))
{
$log = 1;
return $log;
}
else
{
$log = 0;
return $log;
}
}