钩子没有加载到codeigniter中

时间:2016-08-06 07:54:15

标签: php codeigniter hook

我是codeigniter的新手,我想要2个名为“login”和“admin”的页面 我使用钩子和会话来检测用户是否登录,但遗憾的是钩子根本没有加载(呼叫)。 任何想法?
我的控制器:

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

class Auth extends CI_Controller{

    public function __construct(){
      parent::__construct();
    }


    public function index(){

    }
}


我的钩子:

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

class Auth_hook {

    protected $CI;

    public function __construct() {
      $this->CI =& get_instance();
    }

    public function index(){
      print_r("hello!!");
      }
    }
}
?>

编辑:最后hooks.php

$hooks['pre_controller']=array(
    'class'=>'Auth_hook',
    'function'=>'index',
    'filename'=>'Auth_hook.php',
    'filepath'=>'hooks'
);

2 个答案:

答案 0 :(得分:1)

试试这个:

$hook['pre_controller']

而不是:

$hooks['pre_controller']

答案 1 :(得分:0)

您是否查过了代码手册hooks

应用/配置/ hooks.php:

$hook['pre_controller'] = array(
                                'class'    => '',
                                'function' => 'MY_FUNCTION',
                                'filename' => 'MY_CLASS.php',
                                'filepath' => 'hooks',
                                'params'   => ''
                                );

应用/钩/ MY_CLASS.php:

<?php    
function Myfunction(){
    echo "HOOK PROBLEM .. !!";
    die;
}
?>

为此,我进入这个页面并得到一个'HOOK PROBLEM .. !!'。

修改

您的代码正在执行您想要的操作。在进行任何类型的重定向之前,您需要检查登录。

If (user is not logged in) {
    If (Current route is not a login page) {
        Redirect user to login page
    }
}