2011-10-09 3 views
2

CodeIgniter를 처음 사용했습니다. 아무것도 존재에 CodeIgniter에서 exit를 사용하는 것과 비슷합니다.

include('loginpage.php'); 
exit; 

그러나 CodeIgniter의와

다음과 같은 결과 : 이전에 나는 로그인 페이지는 다음과 같은 라인을함으로써 사용자가 보는 것과 같은 페이지로 보이는 있도록 만들 것 로그인 스크립트를 개발했다 출력 클래스의 기능을 완전히 실행되지 않았기 때문에 표시 :

$this->load->view('loginpage'); 
exit; 

그래서 내 질문은 : 어떤 대안 내 이전 방법에서 기능을 모방하는 의미가 있습니까? 궁극적으로 나는이 접근법을 선호한다. 왜냐하면 그들이 사용하지 않는 경우 먼저 로그인해야만하는 페이지에 있다는 것을 사용하기 때문이다.

답변

2

시도 :

$msj= $this->load->view('loginpage',$data,true); 
exit($msj); 
+0

이것이 작동하는 것 같습니다.이 방법을 사용하는 데 문제가 있습니까? 그것은 codeigniter가 중요한 것을 실행하는 것을 방지합니까? – Kenneth

+0

나쁘지는 않지만 모든 경우에 해당하는 것은 아닙니다. 나는 그것을 보호 된 컨트롤러에서만 사용한다. –

1

한 가지 방법은 CodeIgniter의에서 컨트롤러 클래스 내부에 먼저 로그인을 확인하는 것이라고 할 수 있습니다. 이는 생성자에서 수행 할 수 있습니다.

function __construct() 
{ 
    parent::__construct(); 
    $this->_checkLogin(); 
} 
function checkLogin() 
{ 
    $loggedIn = $this->getLoggedIn(); 
    if(!$loggedIn) 
    { 
     $this->load->view('loginpage'); 
     exit; 
    } 
} 

이 함수는 다른 컨트롤러 액션보다 먼저 실행됩니다. 전체 어플리케이션에서 전역 적으로이 컨트롤러가 필요하고 컨트롤러가 여러 개인 경우 컨트롤러를 응용 프로그램에 특정한 기본 컨트롤러에서 확장하십시오. 코어 클래스 교체http://codeigniter.com/user_guide/general/core_classes.html으로 보아라.

+0

이것은 실제로 제가 지금까지 시도해온 접근법입니다 ... view()는 나머지 코드가 실행 된 후에 출력되는 출력 클래스에 뷰를 저장합니다. 코드를 실행하기 위해 codeigniter를 사용해도 나머지 코드는 실행하지 않기를 바란다. – Kenneth

관련 문제