我是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'
);
答案 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
}
}