2016-12-25 8 views
2

は、私は、Zend Frameworkの3Zend Framework 3を使用してクッキーを追加する方法は?

私のコードは、以下の通りで使用してブラウザにクッキーを送信する必要がありますが、それは動作しません:

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

どのように機能するためにクッキーを置くための正しい方法はありますか?

答えて

0

新しいSetCookieインスタンスを作成するときに、クッキーパスを'/'に設定し、空のドメイン''を使用しています。空の文字列をドメインとして渡すと問題が発生する可能性があります。

第2の詳細は、将来時間を3番目の引数(expires)として渡す必要があることです。あなたは将来、時間を与えてもよろしいですか?

は、次の例を見てみましょう、それは何の問題もなく私のZF3アプリ上のクッキーを設定します。

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はヘッダーの送信を強制する「廃止予定」警告を表示しています。私は廃止された問題を解決し、クッキーは現在動作していますが、警告メッセージでヘッダーを送信しないようにコンテンツをバッファリングするにはどうすればよいですか? – Silas

+0

廃止予定の通知を削除する必要があります。注意深くメッセージを掘り下げて理由を修正してください。出力バッファリングを使用する必要はありません。非推奨メッセージがなくなると、セッションに関連する問題が消滅する可能性があります。 – edigu

関連する問題