0
餅乾
我已經設置會話我的屬性/在WEBUSER方法,如以下真正的困境使用會話時,Yii中
public function getRole(){
$user = $this->loadUser(Yii::app()->user->id);
$this->setState('roleId', $user->roles_id);
return $user->roles_id;
}
在配置,我已設置自動啓動會議,以「真」,cookieMode爲「只」。我明白,當我'setState',具有相同名稱的cookie也與會話變量一起創建。目前,我打電話用Yii::app()->user->roleId;
我的問題,這些變量是這樣的: 一)要從cookie和/或已經設置會話變量的使用,我應該叫他們使用Yii::app()->request->cookies['roleId']; or Yii::app()->session['roleId']?
的B)將調用Yii::app()->user->roleId
GET我的價值,如果它已被設置爲Cookie或會話,而不是再次運行整個方法?
我很感謝您的支持!
謝謝,這似乎是一個很好的解決方案。但我已經允許cookies。你認爲我應該禁用cookies嗎?當我使用會話和cookie並且有人篡改cookie時會發生什麼?我應該在哪裏實際使用Cookie呢? –
根本沒有。我的意思是不要將關鍵變量保存在cookie中。把cookies放在一邊很好,當然你至少需要存儲會話ID,否則你的會話將無法工作。 –
這就是我所做的。請檢查: public function getRoleId(){ if($ this-> hasState(「roleId」)){return $ this-> getState(「roleId」);} $ user = $ this-> loadUser(Yii ::應用程序() - >用戶> ID); $ this-> setState('roleId',$ user-> roles_id); 返回$ user-> roles_id; } –