2016-12-15 15 views
0

でのログインセッションのフックにしようとして:は、私がhook.phpでこれを持ってCodeIgniterの

$hook['post_controller_constructor'][] = array(
    'class' => 'Account', 
    'function' => 'check_user_login', 
    'filename' => 'authenticate.php', 
    'filepath' => 'hooks/authenticate', 
    'params' => array() 
    ); 

をし、このフックのフォルダauthenticate.phpすべてのモデル/コントローラーで利用可能ですが、何かが正しくない、私は$ config ['enable_hooks'] = TRUEを設定しました。おかげ

答えて

1

この(hooks.php

$hook['post_controller_constructor'][] = array(
           'class' => 'Authenticate', 
           'function' => 'check_user_login', 
           'filename' => 'Authenticate.php', 
           'filepath' => 'hooks', 
           'params' => array() 
           ); 

今すぐhooksフォルダ内のファイル(Authenticate.php)をフックしてみ

<?php 
class Authenticate{ 
    protected $CI; 

    public function __construct() { 
    $this->CI = & get_instance(); 
    } 
    public function check_user_login(){ 
     if(!$this->CI->session->is_logged_in){ 
      redirect('main/restricted');  
     } 
    } 
} 
?> 

あなたは$this->CI =& get_instance()とCIのsuperobjectを参照するようにして、確定したデータがされる必要があります。電話でご利用いただけます$this->CI..

https://www.codeigniter.com/user_guide/general/hooks.html

あなたはCodeIgniterのバージョン3を使用している場合は、他の何かが間違っている可能性があり、私は404が見つからないコントローラから取得しますが、それは動作しません。代わりに $this->CI->session->userdata('is_logged_in')

+0

$this->CI->session->is_logged_inを使用することができます。 – Bogdan

+0

@AnakinVader私の編集した答えを今すぐチェックして –

+0

をテストします。はい、私は$ this-> CI-> session-> is_logged_in(私はCI 3を持っています)と一緒に使った – Bogdan

関連する問題