Firefox で正常に動作する次のコードを作成しました。
// add product
if( isset($_GET['add']) ) {
$pointer = 1;
foreach ($_COOKIE['cart'] as $posit => $value) {
$pointer = $posit+1;
}
setcookie('cart['.$pointer.']', $_GET['add'] , time() + 60*60*24*$cookie_cart , '/' );
header('Location: cart.php');
}
問題は、私が Safari で試したときでした (したがって、他のブラウザーでも同じ問題が発生する可能性があると思います。関数 foreach() が実行されると、Safari は Firefox とは逆の順序で Cookie を読み取るため、次の Cookie としましょうが定義されています: カート[1]、カート[2]、カート[3]. 1+1 になり、新しい製品を追加するたびにカート [2] として保存します。
これを修正するために多くの方法を試しましたが、これまでのところ成功していません。
ありがとう。