【发布时间】:2014-11-10 18:54:00
【问题描述】:
我知道这是一个非常模糊的问题,但我想知道 $_SESSION 变量在压力方面可以处理多少。如果 $_SESSION 就像一个 cookie,那么一旦用户从浏览器中清除了他或她的 cookie,那么 $_SESSION 应该被销毁。此外,如果 session_destroy() 被调用,那么 $_SESSION 变量将被销毁。
是否存在其他可以破坏 $_SESSION 变量的情况,例如网站崩溃? 如果网站上的 PHP 重载,它是否必须直接影响 $_SESSION 或任何其他功能和处理它的变量,还是它会影响整体?
我为什么要问? 我几乎为我的电子商务网站编写了一个废弃的购物车脚本,我想将客户重定向回他们的订单仍将保存在 $_SESSION 中的网站。可以销毁 $_SESSION 的唯一方法是客户完成购买。当然,客户也可以清除浏览器上的cookies。
但我想知道除了上面提到的这两个之外,是否还有另一个可以销毁 $_SESSION 的实例。
许多废弃的购物车系统将订单信息存储到数据库中,并将其包含在用户收到的电子邮件中,以便他们可以在电子邮件中看到订单。当然,我可以将订单写入数据库,但将所有内容保留在 $_SESSION 中并让客户返回网站时,他们的订单仍处于活动的 $_SESSION 中会更容易。
$_SESSION 能维持什么?
【问题讨论】:
-
在销售方面更容易成为最佳解决方案?
-
没有理由不这样做,除非您的网站崩溃是由磁盘崩溃引起的(默认会话处理是基于文件系统的)...但是如果您有注册用户,您持有会话的时间越长数据(特别是如果他们的会话被“登录”)该会话被劫持的风险就越大
-
@KaiQing 这是一个很好的观点,这就是我仍在辩论的原因。但是,如果 $_SESSION 在为每个客户实施废弃购物车系统时始终存在,那么我不明白为什么不应该使用它。
-
是的,但是会话仍然可以过期,所以即使它在崩溃之后仍然存在,你仍然有可能丢失它。就个人而言,我可能也会参加会议,因为如果在一天左右的时间内没有恢复废弃的购物车,它们通常不会恢复。如果没有注册活动,每个所有者都有自己的想法,即购物车应该使用多长时间。我会给它 2 个小时。
-
@KaiQing 当然我不会让 SESSION 永远存在。我正在考虑让 SESSION 存在一个月并在特定时间继续发送电子邮件,直到客户购买某些东西或一个月结束。
标签: php session cookies shopping-cart