web-dev-qa-db-ja.com

Codeigniter-すべてのユーザーのセッションデータを取得する

私はすべてのセッションデータを取得してそれらにいくつかのアクションを実行する必要があります。それらを取得するための可能な方法はありますか。phpでそれを解決する方法を見つけましたが、codeigniterは独自のカスタムセッションライブラリを使用します。

ネイティブPHP

$_SESSION

Codeigniterでそれを行う方法

7
Sabri Aziri

すべてのセッションデータを取得するには、$this->session->all_userdata();を使用できます

すべてのセッション変数を出力するには、コードの任意の場所で次の行を使用します。

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

Dbセッションを使用できます。したがって、データはデータベースに保存されます。 データベースへのセッションデータの保存 を参照してください。

データベースがサポートされていない場合は、Cookieを使用してデータを取得してください

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

すべてのユーザーのセッションデータを取得するには、まず、コントローラーコンストラクターで次のコードを使用して、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セッションチュートリアル。以下を参照してください link

1
Manish

すべてを見たい場合は、$this->sessionを配列としてキャストしてからprint_rをキャストします。

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

お役に立てれば。

1
Marius Cucuruz

PHPでこれを行う方法を知っていて、codeigniterセッションクラスを使用しないのはなぜですか?私の経験では、CIセッションクラスはajax呼び出しとプロキシサーバーでかなりうまく機能しないため、回避するのが最善です。

0
pgee70
$this->session->userdata('data')->username
0
AlfhaOmega