【问题标题】:How can i set codeigniter sessions to globally accessible?如何将 codeigniter 会话设置为全局可访问?
【发布时间】:2011-12-17 13:10:32
【问题描述】:

我将userid 存储在会话用户数据中,但用户数据仅在一个控制器中可用。我想让 CodeIgniter 会话全局可访问。

我有这个代码

$custom_data = array(
            'userid'    =>  $user_id,
            'loggedin'  =>  TRUE
);

$this->session->set_userdata($custom_data);

我刚刚加载了会话库,并且在四处搜索后我也使用了一些技巧,但没有任何东西可以按照我想要的方式工作。我该如何正确解决这个问题?

【问题讨论】:

    标签: php codeigniter session codeigniter-2


    【解决方案1】:

    等等,在 Internet 上的任何地方都没有关于在 CodeIgniter 中使用会话的内容吗?

    这个框架已经出现了 5 年,所以我怀疑情况是否如此。也许你没有很好地描述你的问题?

    如果您的意思是要在其他控制器中获取它,则通过全局可访问,然后使用:

    $this->session->userdata('userid');
    

    这将返回您的值。

    如果全局可用是指你希望它在其他 PHP 文件(不是 CodeIgniter)中可用,那是完全不同的事情。您需要使用原生 PHP 会话以原生方式与 PHP 和 CodeIgniter 会话一起使用 CodeIgniter 会话。简单的! :)

    【讨论】:

    • 我将 userdata 设置为“userid”,然后在该视图中加载一个视图,我将print_r($this->session->userdata); 它打印出所有用户 ID,但是当我导航到从另一个控制器加载的另一个视图时,userid 字段在会话中使用数据为空
    • 你只需重复 $this->session->userdata('userid');无论您需要它。它始终可以在全球范围内访问。我在视图中使用它
    • "if ( $this->session->userdata('name') ){ echo "Welcome " . $this->session->userdata('name'); (或用户 ID)
    • Bilal,我没有说使用$this->session->userdata,因为那是属性而不是函数。我说使用:$this->session->userdata('userid');
    猜你喜欢
    • 1970-01-01
    • 2017-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-10
    • 1970-01-01
    相关资源
    最近更新 更多