2011-08-09 22 views
0

誰かが、なぜCakephpのクッキーが機能終了後に自動的に自動的に削除されるのでしょうか?Cakephpのクッキーは常に自動的に削除されます

は、私は次のように、機能ABCを言ってみましょうにクッキーを書いてみる:その前に

$this->Cookie->write('referal', $ref); 

、フィルタの前にアプリのコントローラに、私は次のようにクッキーを初期化しています

$this->Cookie->name = 'renttycoons'; 
$this->Cookie->time = 604800; // or '1 week' 
$this->Cookie->path = '/'; 
$this->Cookie->domain = 'rent.local'; 
$this->Cookie->key = 'qSI232qs*&sXOw!'; 

しかし、関数の実行が終了すると、クッキーは空になりました。私が関数abcが終わる前にクッキーを読もうとすると、それがそこにありました。とにかくCookieの削除方法はありませんでした。

+2

どこでクッキーを読もうとしますか? –

+0

はい、上記のクッキーを書き込む機能の後、その下に別の機能にリダイレクトし、その機能がクッキーを読み込みます。 – hudarsono

答えて

2

はい、CakeのCookieが動作するため、Cookie-> write()を使用すると、Cookieがユーザーのブラウザにあるため、直接Cookieに書き込まれません。あなたが書いたクッキーが送られてくるまで、ビューがレンダリングされます。したがって、リダイレクトすると(ビューがレンダリングされないためにCookieが送信されずにフラッシュされないと推測されます)、新しいリクエストには古いCookieデータがあります。

ケーキアプリ内で一部の共有データを保持し、各訪問者に固有のものにしたい場合は、SessionComponentを使用します。それはCookieとほとんど同じです:$this->Session->write('referal', $ref);$this->Session->read('referal');

+0

とまったく同じです。ありがとう! – hudarsono

関連する問題