【发布时间】:2012-01-20 23:46:30
【问题描述】:
最近我实现了一个需要修复的购物车。
购物车对象存储在$_SESSION['cart'] 中。现在浏览器关闭时出现问题,购物车丢失,因为关闭浏览器后会话不再保持活动状态。
解决此问题的方法是将购物车对象存储在具有更长生命周期的 cookie 中,而不是会话中。
我的问题是,如果您知道快速修复,还是我真的必须检查所有源文件并用 cookie 替换会话?
【问题讨论】:
最近我实现了一个需要修复的购物车。
购物车对象存储在$_SESSION['cart'] 中。现在浏览器关闭时出现问题,购物车丢失,因为关闭浏览器后会话不再保持活动状态。
解决此问题的方法是将购物车对象存储在具有更长生命周期的 cookie 中,而不是会话中。
我的问题是,如果您知道快速修复,还是我真的必须检查所有源文件并用 cookie 替换会话?
【问题讨论】:
会话通常由 cookie 标识,默认情况下,cookie 在浏览器关闭后被删除。因此,如果您需要使会话持续很长时间(或永远),您应该调整 PHP 引擎的参数session.cookie-lifetime。
这里是the docs on that。
【讨论】:
session.cookie-lifetime 无法将会话生命周期延长到浏览器的生命周期之外。
我认为您将不得不进行所有编辑。幸运的是,有一个名为 Regexxer 的便捷搜索和替换工具(适用于 Linux),它提供了一个图形界面,用于在多个文件中进行搜索和替换。
【讨论】:
我不确定您是否能够在不使用 serialize() 以及 base64_encode() 和 base64_decode 的情况下将此类数据存储在 cookie 中。事先要记住一些事情。
【讨论】: