2012-02-09 103 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