0

在阅读了这里的许多问题/解决方案后,我处于无法真正解决的情况。基本上我正在编写一个小型购物车应用程序。我正在寻找一种方法来存储用户添加到购物车的商品,最终我使用了 $_SESSION。

问题是所有保存的购物车数据在关闭浏览器后都会丢失。我不能依赖 $_COOKIE,因为我需要将每个“添加”作为新数组存储到购物车,而且我找不到使用 cookie 的方法(加上它有一个限制或其他什么),我真的对现在该做什么感到困惑。

我什至为客人保存购物车数据,使用数据库对我来说不是一个选项。有什么建议么?

4

5 回答 5

3

为什么不将购物车存储在数据库中。在用户 cookie 中保存一个唯一 ID(或者如果您有身份验证/登录系统,只需使用用户 ID)。将其存储在数据库中还可以让您看到不完整的订单,这可能对统计数据和重新定位营销等有用。

于 2012-09-05T10:25:30.327 回答
2

我认为关闭浏览器时购物车物品丢失是标准做法。

您可以尝试使用 HTML5 本地存储:-

本地存储教程

于 2012-09-05T10:23:18.257 回答
1

你需要为你的会话 cookie设置一个生命周期,默认情况下它只存在于浏览器关闭之前。

于 2012-09-05T10:24:38.470 回答
1

正如您所提到的,当浏览器关闭时会话不会持续存在。

如果数据库或任何类型的服务器端存储不是一种选择。您可以考虑使用 LocalStorage 将其保存在客户端。即使浏览器关闭,本地存储中的数据也会保留。浏览器将域名与您的数据相关联。

使用本地存储时需要注意的几件事。

首先,本地存储在客户端,因此您可能需要将数据传回服务器,以便 PHP 可以对其进行操作。(假设您仍然需要服务器端来处理购物车数据。)请参阅此 stackoverflow 帖子:PHP & localStorage;

其次,用户可以不受限制地更改本地存储。

第三,直到 IE8 才被 IE 支持。如果 IE6/7 是您关心的问题,您可能需要回退到 cookie 方法。

于 2012-09-05T10:28:02.877 回答
0

关闭浏览器时会清除会话,因此您必须使用 cookie。

看看这篇文章,了解如何在 cookie 中存储数组:update cookie value in php

Troelskn 的方法是我会使用的方法,但是,将购物车 ID 存储在数据库中似乎是明智的做法:)。

于 2012-09-05T10:24:35.927 回答