Yii会话管理

时间:2012-11-24 13:16:51

标签: 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']) ; 

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

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']是两个完全不同的变量。有人可以帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:27)

我以另一种方式使用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/它包含你需要的所有信息。

答案 1 :(得分:3)

删除yii中的会话变量...

请使用此实际格式。

Yii::app()->session->remove('session_name');

http://www.yiiframework.com/doc/api/1.1/CHttpSession#remove-detail

答案 2 :(得分:-1)

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

$session->open(); 

$session['account_id'] = $id; 

$session['account_name'] = $name;
相关问题