クロムでのみ発生しているように見える奇妙な問題があります。基本的に、ID を記憶するように Cookie を設定しているので、ユーザーがサイトにアクセスしたときに正しい情報を提示できます。
私のコントローラーアクションでは:
$currentcookie = $this->Cookie->read('mixes');
if ($currentcookie == '') {
//write a new cookie with a new id etc
} else {
//show them info relating to the id in the cookie
}
したがって、誰かが初めてアクセスした場合、if ($currentcookie == '') は true と評価され、新しい Cookie が作成されます。既に Cookie がある場合は、「else」が実行されます。
ビューに id を出力するので、それが新しく作成されたものであるかどうかがわかります。これは、最初の訪問では必要ですが、その後の訪問では同じままにする必要があります。
これは FF Opera と safari では機能しますが、奇妙なことに chrome や IE では機能しません。私はブラウザなどを閉じていません。私は何が欠けていますか?
NEW --- Cookie の読み取りと書き込みの方法は次のとおりです。
$currentcookie = $this->Cookie->read('mixes');
$this->Cookie->write('mixes', array('idofthemix' => $newTempMixId));
私のappControllerでは、前のフィルターに次のように含まれています。
$this->Cookie->name = 'tempmix';
$this->Cookie->time = '30 days'; // or '1 hour'
$this->Cookie->domain = 'localhost';
$this->Cookie->key = 'li8&*^iih^456%$^%$fsgatfjmi@#@##@@:LLLkjljkjlj87^*&^*6768!£"&^*()%$&';
$this->Cookie->httpOnly = true;
そのため、ほとんどのブラウザでは Q2FrZQ%3D%3D.b8LRe4GareCnq54%3D のような値を持つ tempmix[mixes] として表示されます。ChromeやIEにはありません