2017-01-23 4 views
1

これは私のmy_Controllerの私のコアフォルダにあります。Codeigniter 3 MY_Controller

<?php 
class MY_Controller extends CI_Controller { 
    public function __construct() 
    { 
     parent::__construct(); 
    } 

    public function is_logged_in($data){  
     $session = $this->session->userdata(); 
     if($session['isloggedin']['username'] == ''){ 
     return isset($session); 
     }else{ 
     return FALSE;} 
    } 
} 
?> 

私は私はいくつかのチュートリアルから上記のコードを貼り付けコピーして、私は私のニーズに基づいて、それを編集してもらっていないかなり確信しています。

いずれにしても質問があります。

私はログインしたユーザーのaccount_typeに応じていくつかのビューにアクセスする責任を持つページコントローラを持っています。

<?php 
defined('BASEPATH') OR exit('No direct script access allowed'); 

class pages extends MY_Controller { 


}?> 

これは、いつでもユーザーがログイン中の私のセッションです。

$new_session = array('username' => $this->input->post('username'), 
          'email' => $this->input->post('email'), 
          'type' => $this->input->post('type'), 
          'logged_in' => TRUE); 
    $this->session->set_userdata($new_session); 

私は自動的にも機能is_logged_in()を呼び出し、「MY_Controller拡張」は、またはどのようにページコントローラからis_logged_in() MY_controller関数を呼び出すかですか基本的には__constructに入れておく必要がありますので、自動的に関数を呼び出すのですか?

また、ユーザーがログインして詳細を確認するにはどうすればよいですか?

私のコントローラからMY_Controllerにsession_dataを渡しますか?もしそうなら、どうですか?

is_logged_in()機能内に$this->session->userdata();行を挿入するだけですか?

P.S.私は認証ライブラリを使ってみましたが、必要なものをあまりにも多く含んでいます。基本認証が必要です。助言がありますか?それは今でもなお維持されています。

答えて

2

あなたのページコントローラからis_logged_in()関数を直接呼び出すことができます。

Pages.php

<?php 
defined('BASEPATH') OR exit('No direct script access allowed'); 

class Pages extends MY_Controller { 
    function __construct() { 
     parent::__construct(); // this will trigger the __construct() of MY_Controller 
    } 

} 

MY_Controller.php

<?php 
class MY_Controller extends CI_Controller{ 
    public function __construct() { 
     parent::__construct(); 
     if($this->is_logged_in()) { 
     // do something if user is allowed to access. 
     } 
     else { 
     // do something if user is not allowed to access 
     } 

    } 
} 
+0

ああ、私は私のコントローラの機能を呼び出すことができる手段を拡張:ちょうどこのような? 私の印象は、ページコントローラを読み込むたびに自動的にMY_controllerがロードされるということでした。私は間違っていたと思います。 –

+0

is_logged_in関数は大丈夫ですか?私は$ dataパラメータのように、多くの冗長性を持っているように感じます。もし関数自体の中で$ session-> userdata()ができるのであれば$ dataを渡して真偽をチェックするのはなぜですか? Ifとissetも、 –

関連する問題