2012-02-09 105 views
1
  1. 我们使用CakePHP的框架版本2.0.6
  2. 该网站是“应该”允许匿名用户“加入购物车”。
  3. 我们正在使用的会话ID(用蛋糕的本地会话类)来存储匿名用户在一个数据库表中的信息。
  4. 当用户去结帐,那么我们要问

问题“你是现任成员如果是这样,请单击Yes登录或没有创建帐户?”:CakePHP的权威性会议再生

无论他们选择什么,用户无论再有登录,或创建一个新的用户名/密码(然后登陆),这是造成CakePHP的再生会话ID。这使得新会议中不可能在5分钟前匿名抓取用户添加到购物车的内容。换句话说,匿名用户的会话ID在匿名用户和登录/创建用户之间发生变化,从而无法在登录后识别他们的购物车。

有没有一种方法可以防止cakephp在这种情况下重新生成会话,或者更好的方式来完成我们正在尝试做的事情,同时仍然保持我们的订单流程(即:匿名允许添加到购物车,之前登录/创建)

+0

[这](http://stackoverflow.com/questions/25690140/preserve-session-id-after-login-cakephp)可以是溶液。 – 2015-09-16 18:03:33

回答

1

正是这个原因,购物车的往往不是存储在饼干。这样,您可以轻松地检索保存的信息后验证。

如果你坚持使用会话来存储这些数据,考虑你的Security.level设置设为“低”。这应该阻止CakePHP重新生成会话ID。

+0

将其设置为媒体应该有进一步的检查 – 2012-02-09 09:29:29

+0

同样的效果改变了secuirty低以及使用DB基于会话。它仍然在不断变化。 – 2012-02-17 07:29:24

+1

您是否设法找到了解决此问题的更好方法?没有将安全级别设置为低。 – Rohan210 2014-02-06 15:32:55