0

私が解決したい主なことは、誰かが管理パネルにアクセスしたいときにユーザーセッションをチェックすることです。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

与えられた問題に対する私のコーディングソリューションについてのあなたの考えを教えてください:)

4

3 に答える 3

7
  1. CI_Controller代わりにクラスを拡張する必要がありますCI_Session
  2. の代わりにフォルダーのMY_Controller下に配置する必要がありますapplication/core/application/library
于 2012-10-21T18:07:38.767 に答える
1

CodeIgniter を学習しているときに、プロジェクトでこのエラーが発生しました。私の解決策は、あなたのプロジェクトを例として、require_once('MY_Controller');私の新しいコントローラーの一番上に置くことでした。

そうすれば、ファイルをコアに移動する必要がなくなり、コントローラのディレクトリに保持できます。

于 2013-11-07T04:17:36.880 に答える
1

Codeigniter はcore、ロードを必要としないライブラリが存在する場所と呼ばれる新しいフォルダーを導入しました。元の CI_Controller クラスはその 1 つなので、automagick でMY_Controller.phpファイルを取得したい場合は、その下にも配置する必要がありapplication/coreます。

疑わしい場合は、ディレクトリの下にある拡張クラスの元のバージョンを確認し、systemそれを の下にミラーリングしapplicationます。

CI_Controller(また、最初のコード例では、 notを拡張するつもりだったと思いますCI_Session)

于 2012-10-21T18:07:32.380 に答える