2010-09-14 29 views
4

警告:非靜態方法的Zend_Controller_Request_Http ::的getCookie()不應該在靜態調用..獲取Cookie的值與Zend框架

蔭嘗試以下獲得Cookie的值:

$cookieData = Zend_Controller_Request_Http::getCookie($key, $default); 

是有更好的辦法呢?

回答

16

getCookie()方法不是靜態的,它應該在一個對象上調用。

我相信這個代碼是從你的控制器,所以它應該基本上看起來像

$request = $this->getRequest(); 
$cookieData = $request->getCookie('someCookie', 'default'); 
+0

沒有它是一個庫的一部分( - :而且也沒有Request對象 – opHASnoNAME 2010-09-14 19:09:10

+0

不知道你的圖書館的意思是這個代碼調用模型中 – Vika 2010-09-14 19:56:51

+0

如果需要在這個代碼?一個模型類? – almaruf 2014-11-25 11:08:15

2

這是一個輕微的側面說明,但它可能只是以及幫助避免長時間徒勞的時間。根據我的經驗,在zf1和其他框架中無法從$ _COOKIE檢索值時發生的問題主要是因爲setCookie非常易於使用,因此忘記添加路徑和域如下所示:

setcookie('cookieName ','cookieValue',$ finalExpirationTime,'/','。yourdomain.com');

,而是這樣做:

的setcookie( 'cookieName', 'cookieValue',$ finalExpirationTime);

這使得真正煩人,尤其是在Windows上使用ip而不是實際域進行工作時。另一件要注意的是域名前面的點(。)。正如手冊中所述:舊版瀏覽器仍然實施已棄用的»RFC 2109可能需要領先的。以匹配所有子域。

希望這有助於