有哪些方法可以检查整个网站的会话价值?

时间:2015-04-01 09:51:56

标签: php session

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

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

2 个答案:

答案 0 :(得分:0)

尝试:

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

答案 1 :(得分:0)

您没有说出您正在使用的框架,但我猜测如果您使用MVC,则只有一个php文件(通常是index.php)在哪里可以放置代码。

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

请记住在登录页面上添加一张支票,如果是这样的话就不应用重定向...