生活随笔
收集整理的這篇文章主要介紹了
YII中session和cookie
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一,在Yii中使用session?
與原生態php5的session使用差別是,php5使用session_start();$_session['key'] = $value;?
在yii中,session已經被封裝。不需要start,但需要new一個session對象。
Java代碼??
??$session=new?CHttpSession;??$session->open();??$value1=$session['name1'];??????Yii::app()->session->add('name','foobar');??Yii::app()->session->add('name2','foobar');??Yii::app()->session->add('name3','foobar');????$session?=?Yii::app()->session;??$session['key']?=?'value';??var_dump($session['key']);???????foreach($session?as?$name=>$value)?? 一個實例
Java代碼??
$session?=?new?CHttpSession;??$session->open();????????????$user_id?=?$this->user->id;??$sessionKey?=?$user_id.'_is_sending';????????????if(isset($session[$sessionKey])){??????$first_submit_time?=?$session[$sessionKey];??????$current_time??????=?time();??????if($current_time?-?$first_submit_time?<?10){??????????$session[$sessionKey]?=?$current_time;??????????$this->response(array('status'=>1,?'msg'=>'不能在10秒鐘內連續發送兩次。'));??????}else{??????????unset($session[$sessionKey]);??????}??}??????if(!isset($session[$sessionKey])){??????$session[$sessionKey]?=?time();??}????????????var_dump($sessionKey);var_dump($session[$sessionKey]);exit();?? 二,在Yii中使用cookie?
Yii實現了一個cookie驗證機制,可以防止cookie被修改?。啟用之后可以對cookie的值進行HMAC檢查。?
Cookie驗證在默認情況下是禁用的。如果你要啟用它,可以編輯應用配置中的組件中的CHttpRequest部分。?
一定要使用經過Yii驗證過的cookie數據。使用Yii內置的cookies組件來進行cookie操作,不要使用$_COOKIES。?
實例:
Java代碼??
??$cookie=Yii::app()->request->cookies[$name];???$value=$cookie->value;???......?????$cookie=new?CHttpCookie($name,$value);???Yii::app()->request->cookies[$name]=$cookie;??? ?
Java代碼??
'components'=>array(??????'user'=>array(????????????????????'identityCookie'=>array('domain'?=>?'.domain.cc','path'?=>?'/'),????????????????????'allowAutoLogin'=>true,??????????'stateKeyPrefix'=>'yourprefix',??????????'loginUrl'=>array('/user/login'),??????),??????'session'?=>?array(??????????'cookieParams'?=>?array('domain'?=>?'.domain.cc',?'lifetime'?=>?0),??????????'timeout'?=>?3600,????????????????),???????'statePersister'=>array(???????????'class'=>'CStatePersister',??????????'stateFile'=>'../CommonLib/protected/runtime/state.bin',??????),?? ?將session保持在數據庫的設置:
Java代碼??
'session'?=>?array?(??????'class'?=>?'system.web.CDbHttpSession',??????'connectionID'?=>?'db',????????),?? ?
總結
以上是生活随笔為你收集整理的YII中session和cookie的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。