2012-11-24 11 views
8

私は、次のコードを使用してYiiの中で、いくつかのセッション変数を設定しようとしています:のYiiセッション管理

$session=new CHttpSession; 
      $session->open() ; 
      $session->setSessionName('My Session') ; 
      $session['sleep'] = 0 ; 
      $session['attempts'] = 0 ; 
      $session->writeSession('sleep','0') ; 
      $session['ip'] = $this->get_ip_address() ; $session->close() ; var_dump($session,$session['ip']) ; 

をしかし、私は上記のセッションvaiablesを設定することはできませんよ、ダンプは次の結果を持っています

object(CHttpSession)#17 (5) { ["autoStart"]=> bool(true) ["behaviors"]=> array(0) { } ["_initialized":"CApplicationComponent":private]=> bool(false) ["_e":"CComponent":private]=> NULL ["_m":"CComponent":private]=> NULL } string(3) "::1" 

$ sessionと$ session ['ip']は全く異なる2つの変数として認識されます。誰かがこれで私を助けることができますか?

答えて

26

私は別の方法でYiiのセッションで作業します。私はapp()変数の下でグローバルセッション変数を使用します。ですから、このような値は保存することができます:

Yii::app()->session['sleep'] = "value"; 

をそして、あなたは、このような値を取得することができます:

$sleep = Yii::app()->session['sleep']; 

最後に、あなたがこのようにそれを削除することができます:あなたがアクセスできる

unset(Yii::app()->session['sleep']); 

この方法あなたのコードのどこにでもあります。私はこの記事を読むことをお勧めします:http://www.larryullman.com/2011/05/03/using-sessions-with-the-yii-framework/それはあなたが必要とするすべての情報があります。

+0

うん、これは私がやってしまったものです!とにかく答えてくれてありがとう! –

+0

ようこそ。 – Skatox

+0

私もそれを使用してください。しかし、これとCHttpSessionの違いは何ですか? – shgnInc

-1
 
$session = new \yii\web\Session(); 

$session->open(); 

$session['account_id'] = $id; 

$session['account_name'] = $name; 
+1

コードのみの回答は大変です。なぜ、どのように動作するのか説明してください。ところで、OPの問題に直接関係しているわけではありません。 – Gogol