yii在哪里设置session_start() [ 新手入门 ]
我在本地windows开发的代码,放到linux虚拟机下,不能登录, 经排查,登录时能验证,并且创建了session,只要一跳转页面,session就丢失了。
另外我做了两个测试页面,也证实只要session_start(),就可以读取session,
请问,在yii 里有session_start这个设置吗?
共 2 条回复
-
首先,在Yii框架中,你不需要像标准PHP代码那样使用
session_start()
,
在Yii框架中,autoStart 属性缺省被设置为true,所以,
虽然没有使用session_start()
,你仍然可以使用$_SESSION全局变量,但最好使用
Yii框架封装的Yii::app->session
:设置session变量:
Yii::app()->session['var']='value';
使用:echo Yii::app()->session['var'];
移除:unset(Yii::app()->session['var']);
更为复杂一点的使用时如何配置你的session
配置项可设在 protected/config/main.php的components中:'session'=>array( 'autoStart'=>false(/true), 'sessionName'=>'Site Access', 'cookieMode'=>'only', 'savePath'='/path/to/new/directory', ),
将session保持在数据库的设置:
'session' => array ( 'class' => 'system.web.CDbHttpSession', 'connectionID' => 'db', 'sessionTableName' => 'actual_table_name', ),
好,还有什么呢?对了,为了调试,有时需要知道当前用户的session ID,
该值就在Yii::app()->session->sessionID
中。最后,当用户退出登录(logout),你需要消除痕迹,可使用:
Yii::app()->session->clear()
移去所有session变量,然后,调用
Yii::app()->session->destroy()
移去存储在服务器端的数据。
design231 好好学yii
注册时间:2012-11-02
最后登录:2013-07-31
在线时长:0小时0分
最后登录:2013-07-31
在线时长:0小时0分
- 粉丝1
- 金钱325
- 威望0
- 积分325