【发布时间】:2012-10-27 16:56:46
【问题描述】:
我基本上是在尝试会话控制。如果用户已登录,则可以继续。但是如果他没有登录,那么它会显示一个登录屏幕然后死。但是,当我在构造函数中使用die 或exit 时,它不会显示登录屏幕;它立即死亡。代码如下:
private $username = null;
private $mongoid = null;
private $neoid = null;
public function __construct(){
parent::__construct();
// session to global
$this->username = $this->session->userdata( 'username');
$this->mongoid = $this->session->userdata( 'mongoid');
$this->neoid = $this->session->userdata( 'neoid');
// check if user is logged in
if( $this->username == "" || empty( $this->username)){
$this->load->view( 'access/login');
die;
}
}
如果die 没有写在那里,它会显示登录页面,但是die,它不会显示。为什么我要使用die?因为如果我不使用,它会在索引功能上移动,如果用户未登录,我不希望它执行索引功能。
这里有什么问题?我应该用什么来停止执行?
【问题讨论】:
-
您需要先使用 echo 或其他方式将其显示给用户。
-
如果将
die;替换为:echo $this->output->get_output(); exit;会发生什么 -
你为什么要自己建造这个? CI 没有 Authentication Bundle 之类的吗?在任何情况下,您都不想在 User 类中进行检查,更不用说在构造函数中了。它不属于那里,而是在身份验证服务类中。
-
显示什么?浏览页面?还是什么?
-
约翰,谢谢。解决了。能否请您发布一个答案,以便我标记为正确答案?
标签: php codeigniter exit-code