2014-01-18 51 views
0

在登錄模塊中,我爲控制器創建了一個cookie。我可以驗證cookie是否存在。我遵循YII框架,但它有錯誤,當我得到cookie。下面是錯誤:如何在YII框架中獲取cookie值?

試圖讓非對象的屬性

$username = Yii::app()->request->cookies['loginSuccess']->value; 

這裏是我創建的cookie:

if($model->validate() && $model->login()){   
    $cookie = new CHttpCookie('loginSuccess',$model->username); 
    $cookie->expire = 604800;       
    Yii::app()->request->cookies['loginSuccess'] = $cookie; 
    $this->redirect('/ktbeauty/index.php/categories/index'); 
}  

我的var_dump cookie之前重定向顯示它是這樣的:

object(CHttpCookie)#37 (9) 
    { 
      ["name"]=> string(12) 
      "loginSuccess" ["value"]=> string(7) 
      "sacpv04" ["domain"]=> string(0) "" ["expire"]=> int(604800) 
      ["path"]=>string(1) "/" ["secure"]=> bool(false) ["httpOnly"]=> bool(false) 
      ["_e":"CComponent":private]=> NULL ["_m":"CComponent":private]=> NULL 
    } 

非常感謝你

+1

你是否在訪問前設置cookie?如果沒有,使用'isset'函數檢查cookie是否存在。 –

+0

您是否嘗試在相同的請求中讀取cookie? –

回答

1

試試這個

$cookie->expire = time() + 604800; 

這個表達式設置cookie從當前時間604800後過期。
這將爲你工作:)

+0

是的,它適用於我,非常感謝您以任何方式向我介紹cookie的所有屬性?最重要的是,cookie安全再次感謝你 –