2014-03-03 53 views
5

我需要獲取所有會話數據並對其採取一些操作,是否有任何可能的方式來獲取它們,我發現如何在php中解決它,但codeigniter使用它自己的自定義會話庫。Codeigniter - 獲取所有用戶會話數據

機PHP

$_SESSION

我怎麼能做到這一點的笨

+1

這會幫助你'$ this-> session-> all_userdata();'。在此片段之前加載會話庫。 –

+0

是否有任何特定的數據需要獲取,但在codeigniter會話類中不可用? – anurupr

+0

@RahilWazir $ this-> session-> all_userdata();沒有幫助,因爲它只有單個陣列爲每個用戶,我正在嘗試做 前讓我說我有2個用戶登錄到我的系統用戶A和B,我的問題是如何獲得用戶B的會話數據來自用戶A. 我是否清楚並感謝您的幫助 –

回答

17

獲取數據要獲得所有會話數據,你可以使用$this->session->all_userdata();

要打印出你所有的會話變量使用這條線在你的代碼的任何地方:

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

您可以使用DB會話。 所以數據將被存儲到數據庫中。 見Saving Session Data to a Database

如果你沒有數據庫的支持只是使用cookie,並與

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

是的,這是一個解決方案,但在我的情況下,我不能使用db :) +1 –

+0

您可以使用codeigniter配置文件中存儲在cookkie中的會話。 – stavgian

0

如果你知道如何在PHP中做到這一點,爲什麼不落實的是,和n不使用codeigniter會話類?我的經驗是CI會話類使用ajax調用和代理服務器非常糟糕,所以最好避免。

0

獲取所有用戶會話數據。首先我們需要在我們的控制器構造函數中使用以下代碼手動初始化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教程,請參閱鏈接http://www.tutsway.com/codeigniter-session.php

1

如果你想看的一切我這樣做的方式是把$this->session作爲數組然後print_r它。

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

希望這會有所幫助。