【问题标题】:What are the available ways to check session's value throughout the website?有哪些方法可以检查整个网站的会话值?
【发布时间】:2015-04-01 09:51:55
【问题描述】:

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

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');
            }
        }
    }

}

但它向我展示了这样的错误:Severity: Notice

消息:试图获取非对象的属性

文件名: hooks/Authentication.php

行号: 20

【问题讨论】:

标签: php session


【解决方案1】:

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

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

请记住添加检查您是否在登录页面上,如果是,请不要应用重定向...

【讨论】:

    【解决方案2】:

    试试:

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

    【讨论】:

      猜你喜欢
      • 2020-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多