gpt4 book ai didi

php - 在 CodeIgniter 2.1.0 的 Hook 中使用 session 数据

转载 作者:可可西里 更新时间:2023-11-01 00:16:02 24 4
gpt4 key购买 nike

我使用的是 2.1.0 版的 CodeIgniter。我想使用 Hooks 进行登录认证。这意味着我希望在每个 Controller 中检查 session 数据是否登录。所以我想使用钩子(Hook)。为此,我执行了以下代码:

在配置文件中

$config['enable_hooks'] = TRUE;

在文件 hooks.php

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

在文件 loginHelper.php

class SessionData{
var $CI;

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

function initializeData() {

// This function will run after the constructor for the controller is ran
// Set any initial values here
if (!$this->session->userdata('username')) { // This is line 13
redirect('login');
}
}
}

但它抛出以下错误:

A PHP Error was encountered

Severity: Notice

Message: Undefined property: SessionData::$session

Filename: hooks/loginHelper.php

Line Number: 13

我该如何解决这个问题?

最佳答案

在系统执行的早期调用。此时仅加载了基准测试和 Hook 类...

您应该手动加载在 Hook 中使用的所有库和模型:

if (!isset($this->CI->session))
{
$this->CI->load->library('session');
}

并使用 $this->CI->session->userdata() 代替 $this->session->userdata()

关于php - 在 CodeIgniter 2.1.0 的 Hook 中使用 session 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9850247/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com