有哪些可用的方法来检查会话';s在整个网站上的价值


What are the available ways to check session's value throughout the website?

在我的默认控制器会话中,设置了值。现在,在我的每个调用不同视图的控制器中,我想检查是否设置了会话的值,然后只显示该视图,否则它会将用户重定向到登录视图
所以,据我所知,我必须在我的每个控制器中检查会话的值,有什么捷径吗??或者有没有任何方法可以调用每次在调用任何控制器之前调用的一个文件/函数。这样我就可以在那里检查会话的值
我也尝试过这样的钩子:

class Authentication extends CI_Hooks {
    var $CI;
    function __construct() {
        $this->CI = & get_instance();
    }
    public function verify_session() {
        if (!isset($this->CI->session)) {
            $this->CI->load->library('session');
            $user_session_id = $CI->session->userdata('email');
            if ($user_session_id == '') {
                redirect('common_controller/home_controller');
            }
        }
    }
}

但它显示给我的eroor是这样的:Severity: Notice

消息:正在尝试获取非对象的属性

文件名:hooks/Authentication.php

行号:20

你没有说你使用的是什么框架,但我猜如果你使用MVC,那么有一个php文件(通常是index.php)可以放你的代码。

此外,它似乎使用了钩子,因此您可以将它添加到在识别和调用控制器之前执行的钩子中。

只需记住,如果您在登录页面上,请添加一个复选框,如果是,请不要应用重定向…

尝试:

<script>
console.log(<?php echo json_encode($_SESSION, JSON_HEX_TAG); ?>);