Codeigniter - 获取所有用户会话数据

问题描述 投票:7回答:6

我需要获取所有会话数据并对它们采取一些操作,有没有任何可能的方法来获取它们,我发现如何在php中解决它,但codeigniter使用它自己的自定义会话库。

本机的PHP

$_SESSION

我怎么能在codeigniter中做到这一点

php session codeigniter-2 session-variables
6个回答
21
投票

要获取所有会话数据,您可以使用$this->session->all_userdata();

要打印所有会话变量,请在代码中的任何位置使用此行:

echo '<pre>'; print_r($this->session->all_userdata());exit;

4
投票

您可以使用db session。因此数据将存储到数据库中。见Saving Session Data to a Database

如果您没有数据库支持,只需使用cookie并获取数据

$username = 'John Doe';
$this->session->set_userdata('username',$username);
$var = $this->session->userdata;
echo $var['username'];

1
投票

如果你想看到我所做的一切,那就是把$this->session作为数组然后print_r

        $this->load->library('session');
        echo "<pre>". print_r((array)$this->session, true) ."</pre>";

希望这可以帮助。


1
投票

要获取所有用户会话数据。首先我们需要在控制器构造函数中手动初始化Session类,使用以下代码。

$this->load->library('session');

然后我们使用以下代码。

$this->session->all_userdata();

上面的函数返回一个关联数组,如下所示。

Array
( [session_id] => 4a5b5dca45708ab1a84364eeb455j007 [ip_address] => 127.0.0.1 [user_agent] => Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; [last_activity] => 1102132923
)

完整的Ci Session教程。请跟随link推荐人


0
投票

如果您知道如何在PHP中执行此操作,为什么不实现它,而不是使用codeigniter会话类?我的经验是CI会话类在使用ajax调用和代理服务器时非常糟糕,因此最好避免使用它。


0
投票
$this->session->userdata('data')->username
© www.soinside.com 2019 - 2024. All rights reserved.