私はすべてのセッションデータを取得してそれらにいくつかのアクションを実行する必要があります。それらを取得するための可能な方法はありますか。phpでそれを解決する方法を見つけましたが、codeigniterは独自のカスタムセッションライブラリを使用します。
ネイティブPHP
$_SESSION
Codeigniterでそれを行う方法
すべてのセッションデータを取得するには、$this->session->all_userdata();
を使用できます
すべてのセッション変数を出力するには、コードの任意の場所で次の行を使用します。
echo '<pre>'; print_r($this->session->all_userdata());exit;
Dbセッションを使用できます。したがって、データはデータベースに保存されます。 データベースへのセッションデータの保存 を参照してください。
データベースがサポートされていない場合は、Cookieを使用してデータを取得してください
$username = 'John Doe';
$this->session->set_userdata('username',$username);
$var = $this->session->userdata;
echo $var['username'];
すべてのユーザーのセッションデータを取得するには、まず、コントローラーコンストラクターで次のコードを使用して、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
すべてを見たい場合は、$this->session
を配列としてキャストしてからprint_r
をキャストします。
$this->load->library('session');
echo "<pre>". print_r((array)$this->session, true) ."</pre>";
お役に立てれば。
PHPでこれを行う方法を知っていて、codeigniterセッションクラスを使用しないのはなぜですか?私の経験では、CIセッションクラスはajax呼び出しとプロキシサーバーでかなりうまく機能しないため、回避するのが最善です。
$this->session->userdata('data')->username