2016-11-26 7 views
-1

私はHTML、PHP、およびJSのショッピングカートをコーディングしています。私はonclickクッキーを削除し、ショッピングカートからアイテムを削除するページをリフレッシュする機能を持っています。これはChromeで動作し、Cookieは削除されます。私はFirefoxで同じコードを持っていますが、動作しません。FirefoxではCookieが削除されません。ここでChromeではCookieが削除されますが、Firefoxでは削除されません。

echo '<button class="button" onclick="removeCart' . $x . '()">Remove from Cart</button>';

を機能だ:ここでonclick属性を持つ要素です

   echo '<script>'; 
       echo 'function removeCart' . $x . '() {'; 
       echo 'document.cookie = "' . $itemsSpaced[$x] . '= ; expires=Thu, 01 Jan 1970 00:00:00 UTC";'; 
       echo ' location.reload(true);'; 
       echo '}'; 
       echo '</script>'; 

なぜこのChromeでの作業ではなく、Firefoxのですか?

+0

? – trincot

+0

私は別のページにクッキーを設定し、JavaScriptで書いています: 'document.cookie = i +" "+ item +" = "+ price +"; path =/cart "' –

+1

'; 'removeCart'の' path =/cart'ですか? – trincot

答えて

1

クッキーの削除には、作成時と同じpath属性とdomain属性を必ず追加する必要があります(これらのいずれかを指定した場合)。これは、これら2つの属性がCookieのアクセシビリティを決定するためです。

たとえば、同じ名前の2つのCookieがありますが、別のパスにリンクされている可能性があります。あなたがパスを指定しない場合は、どちらを削除するかはあいまいです。どうやらFirefoxはChromeよりもこの点で優れています。パス指定がなければ、クッキーを削除しないでください。

だからあなたはおそらくにコードを変更する必要があります。

あなたがクッキーを設定しましたか
echo 'document.cookie = "' . $itemsSpaced[$x] . '= ; path=/cart; expires=Thu, 01 Jan 1970 00:00:00 UTC";'; 
関連する問題