我有一个电子商务 cakephp (v 1.3) 应用程序,客户可以在其中将东西添加到购物车。只要用户不存在浏览器或会话超时期限未超过,定义购物车内容的会话变量就会保持存储。但是如果他们关闭浏览器(IE/Firefox),购物车就会变空,因为 cookie 会被破坏。奇怪的是,Chrome 没有这个问题,这是另一个谜。
我试图更改 /app/config/core.php 文件中的 Session.cookieTimeout 变量,但这没有任何效果。每当我在浏览器开发工具上提取 cookie 信息时,它都会显示 cookie 名称“PHPSESSID”,并且过期时间一直显示“会话结束时”。
我还尝试使用 $this->Cookie-$time 覆盖 AppController beforeFilter() 函数中的 cookie 过期时间,但这也没有做任何事情来定义会话 cookie 超时。
我的猜测是某些设置将 cookie 超时设置为 0,这是浏览器关闭时会话结束的默认设置。
当用户关闭浏览器时,我还应该尝试哪些其他措施来防止 cookie 被破坏?