Yii会话管理

Var*_*ain 9 php session 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']) ; 
Run Code Online (Sandbox Code Playgroud)

但是,我无法设置上面的会话变量,转储具有以下结果:

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" 
Run Code Online (Sandbox Code Playgroud)

它将$ session和$ session ['ip']视为两个完全不同的变量.有人可以帮我解决这个问题吗?

Ska*_*tox 27

我以另一种方式使用Yii下的会话,我使用app()变量下的全局会话变量.所以你可以存储这样的值:

Yii::app()->session['sleep'] = "value";
Run Code Online (Sandbox Code Playgroud)

你可以得到这样的价值观:

$sleep = Yii::app()->session['sleep'];
Run Code Online (Sandbox Code Playgroud)

最后你可以像这样删除它:

unset(Yii::app()->session['sleep']);
Run Code Online (Sandbox Code Playgroud)

这样您就可以在代码中的任何位置访问它们.我建议你阅读这篇文章:http://www.larryullman.com/2011/05/03/using-sessions-with-the-yii-framework/它拥有你需要的所有信息.