4

まず、私は Cookie にあまり詳しくありませんが、Cookie の仕組みは知っています。プレーンな PHP コードを使用したさまざまなチュートリアルをかなり見てきましたが、symfony 構文を使用して配列をクッキーに保存する方法の確かな例を探しています。

$this->getResponse()->setCookie('myCookie', $data);

文字列を想定しているため、配列をそのまま渡すことはできません。最初に配列をシリアル化する唯一の方法はありますか?

データを Cookie に保存する際に他のオプションはありますか?

4

3 に答える 3

4

セッションではなくCookieに保存する必要がある場合は、シリアル化を使用できます。

$this->getResponse()->setCookie('myCookie', serialize($data));

$data = unserialize($this->getRequest()->getCookie('myCookie'));
于 2009-04-16T14:15:26.553 に答える
3

配列が唯一の保存対象である場合は、配列をCookie内のキー/値のセットに変換できます。

$this->getResponse()->setCookie('myCookie[0]', $data1);
$this->getResponse()->setCookie('myCookie[1]', $data2);
于 2009-04-04T02:21:47.043 に答える
2

おそらく、Cookie ではなくセッションにデータを保存する必要があります。

PHP はこれを自動的にサポートします。データを に配置するだけで$_SESSION['key']、そのユーザーがページを読み込んでも保持されます。

バックグラウンドで、PHP はPHPSESSIDクライアントに Cookie を設定し、これを使用して Web サーバー上のデータを検索します。これには、Cookie の使用に比べて 2 つの明確な利点があります。

  1. データは改ざんできません。Cookie は、クライアントによって変更、削除、または破損される可能性があります。重要な情報を保存するためにそれらを使用しないでください。
  2. ストレージは無制限です。
  3. セッション データの保存にはさまざまなオプションがあります。それらは、ディスクや memcache などに移動できます。
  4. 配列やオブジェクト インスタンスなどの複雑な型を格納できます。

詳細については、セッションに関する PHP ドキュメントを参照してください。

于 2009-04-04T02:12:29.673 に答える