我编写了以下在 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]。Firefox按此顺序排列,所以当我添加一个新的时,它被存储为购物车[4],而Safari则相反,总是使$指针为 1+1,每次添加新产品时将其存储为购物车 [2]。
我尝试了很多方法来解决这个问题,但到目前为止都没有成功。
谢谢。