-2

我正在开发一个购物车应用程序。当用户选择特定产品时,该产品的 ID、数量和价格会存储在会话中。但是当我关闭浏览器时,来自 $_SESSION['cart'] 的所有数据都会被删除,但我希望当我再次访问我的网站时,应该显示最后选择的实体。我使用价格、数量和产品 ID 作为 -

<?
$_SESSION['cart'] = array();
$_SESSION['cart'][0]['productId'] = $pid;
$_SESSION['cart'][0]['qty'] = 1;
$_SESSION['cart'][0]['price'] = $price
?>

请告诉我即使在关闭浏览器后如何在会话中保留选定的值。如果您有其他方法?谢谢。

4

3 回答 3

1

显然,将数据保存到 cookie 或数据库中!
会话持续到超时(如果有)或您关闭浏览器。

于 2013-04-10T06:36:47.323 回答
0

你可以session.cookie_lifetime在你的php.ini. 0默认情况下。我认为这就是关闭浏览器时会话过期的原因。

将其设置为将会话86400cookie 生命周期设置为一天,然后重新检查您的站点。我认为它会解决你的问题。

看看这里

php.net 文章

于 2013-04-10T06:48:53.447 回答
0

当您设置会话数据时,只需设置一个 cookie:

setcookie('cart' , true, time()+60*60*24*7);
setcookie('productID' , $pid, time()+60*60*24*7);
setcookie('qty' , '1', time()+60*60*24*7);
setcookie('price' , $price, time()+60*60*24*7);

比在全局标头中检查一个人是否未登录(通过会话变量存在),如果没有,检查 cookie 是否存在,如果存在,通过它填充您的购物车。

您当然需要启动一个新会话,但这超出了这个问题的范围。

于 2013-04-10T06:41:40.717 回答