2011-01-14 256 views
3

當我們寫購物車時,我們是否應該使用會話ID在數據庫中保存購物車信息,還是隻保存會話變量?爲什麼?Php購物車

回答

0

將其存儲在數據庫中。這並不難,它會給你最好的結果。此外,它可以讓你追蹤人們放入籃子但不購買的物品。

1

如果用戶不能保存他的購物車,會話ID將會很好,只要記住如果他重新啓動瀏覽器就可以改變它。

如果您希望用戶能夠存儲和檢索購物車,則不能依賴會話ID。在這種情況下,您需要一個用戶帳戶,然後將購物車綁定到用戶ID。


[編輯]所有的
首先,是的,我想你應該在車存放在一個數據庫。 只要客戶沒有用戶帳號,唯一的方法就是通過會話ID或在客戶端上寫入識別他/她的cookie。

但最終,根據您想購買的購物車的可靠程度,您不能相信會話ID,因爲如果客戶重新啓動瀏覽器它可能會更改。寫入cookie並不可靠,因爲客戶可能已經禁用了Cookie。會話變量當然正在等待會話ID。

如果你不想100%可靠的購物車,你需要讓顧客登錄,這樣你可以使用用戶ID而不是會話ID。

+0

我的觀點是登錄前和結帳前。 – wailynnoo 2011-01-14 05:04:48

1

其實這取決於你想用它做什麼。

如果你想要一個登錄用戶可以在2天后(或其他)登錄他的購物車,你應該把它放在db中。但是你不能保存一個沒有登錄的用戶手推車(或者只保存它來跟蹤物品)。所以你必須每次檢查用戶是否登錄。

好處是,如果用戶使用其他瀏覽器或電腦,他仍然會有購物車。

對於數據庫,它不能改變任何東西,因爲通常你會有一個歷史記錄(如果用戶購買產品),所以你只有一個布爾型的歷史記錄,並且每個月都有一個清除歷史的cron如果你需要的話)。

1

個人而言,在用戶會話中存儲購物車並不存在實際問題,但顯然用戶在瀏覽器關閉後將失去其購物車的內容。所以這取決於您是否相信您的客戶將從持久購物車中獲益。

沒有與存儲的購物車在數據庫中,我會推薦這,你就可以看到人們正在添加到購物車的物品,然後不買這可能表明

所以短一些定價問題沒問題回答....將其添加到數據庫:)