2016-12-25 149 views
2

我需要使用Zend Framework低於3如何使用Zend Framework 3添加cookie?

我的代碼如下發送一個cookie的瀏覽器,但它不工作:

$cookie = new Zend\Http\Header\SetCookie('CookieKey', $val, $time, '/', ''); 
$response->getHeaders()->addHeader($cookie); 

如何把cookie來工作的正確方法?

回答

0

您正在將Cookie路徑設置爲'/',並在創建新的SetCookie實例時使用空域''。將空字符串作爲域傳遞可能會導致問題。

第二個細節是你需要在未來傳遞一個時間作爲第三個參數(expires)。你確定你將來有一段時間?

看看下面的例子,它設置在我ZF3應用cookie的時候沒有任何問題:

namespace MyApp\Action; 

use Zend\Http\Header\SetCookie; 

public function indexAction() 
{ 
    $cookie = new SetCookie('bar', 'baz', time()+7200); 
    $this->getResponse()->getHeaders()->addHeader($cookie); 
    return new ViewModel(); 
} 
+0

我調試的代碼,今天我發現這個問題,頭已經被髮送。 ZF3顯示「已棄用」警告,強制標題被髮送。我解決了不推薦使用的問題,現在Cookie正在工作,但我可以如何緩衝內容以不發送帶有警告消息的標題? – Silas

+0

您必須取消棄用通知。只需仔細挖掘信息並修復原因。你不需要使用輸出緩衝。棄用消息消失後​​,與會話相關的問題可能會消失。 – edigu