2012-10-21 3 views
0

내가 해결하고 싶은 가장 중요한 것은 누군가가 관리 패널에 액세스하려고 할 때 사용자 세션을 확인하는 것입니다. MY_Controller 클래스를 만들고 라이브러리에 배치했습니다.MY_Controller 클래스가 없습니다.

class MY_Controller extends CI_Session { 

public $logged_in = FALSE; 

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

public function is_logged_in() 
{ 
    $logged = $this->userdata('user_id'); 
    $this->logged_in = ($logged) ? TRUE : FALSE; 
} 

function sessdestroy() { 

    $this->session->sess_destroy(); 

} 

} 

이것은 내 로그인 페이지입니다. 세션 검사가 작동하는지 테스트하기 위해 관리 패널 (대시 보드)로 리디렉션하는 버튼을 만들었습니다.

class Login extends CI_Controller { 

function __construct() { 

    parent::__construct(); 

} 

public function index() { 

    $this->load->view('view_login'); 

    if(isset($_POST['redirect'])) { 

    redirect('admin'); 

    } 
} 


} 

이것은 사용자 세션이 있는지 확인하는 관리자 컨트롤러입니다.

class Admin extends MY_Controller { 

function construct() { 

    parent::__construct(); 

} 


function index() { 

    if($this->is_logged_in()) { 

    $this->dodadi_destinacija(); 

    } 

    else redirect('login'); 

} 

} 

이 오류가 발생했습니다.

Fatal error: Class 'MY_Controller' not found in C:\wamp\www\UserPanel\application\controllers\admin.php on line 3 

당신은 CodeIgniter를이 core라는 새 폴더를 도입

답변

1

:)하십시오 주어진 문제에 대한 내 코딩 솔루션에 대해 나에게 의견을 말할 수있는로드의 삶을 필요로하지 않는 라이브러리. 원래 CI_Controller 클래스가 그 중 하나이기 때문에 자동 완성이 MY_Controller.php 파일을 가져 오려면 application/core 아래에 배치해야합니다.

의심스러운 경우 system 디렉토리 아래의 확장 클래스의 원본 버전을 확인하고 application 아래를 비추십시오.

당신은 MY_Controller 폴더 대신 application/core/ 아래에 배치해야합니다 당신은 대신 CI_Session
  • CI_Controller 클래스를 확장 할 필요가

  • 7
    1. 를 (또한 첫 번째 코드 예제, 난 당신이 CI_SessionCI_Controller을하지 확장하는 의미 생각) application/library
    1

    저는 CodeIgniter를 배우면서 프로젝트에서이 오류가 발생했습니다. 내 솔루션은 귀하의 프로젝트를 예제로 사용하기 위해 새 컨트롤러 상단에 require_once('MY_Controller');입니다.

    그런 식으로 필자는 파일을 코어로 옮길 필요가 없어서 컨트롤러의 디렉토리에 보관할 수있었습니다.

    관련 문제