2011-01-14 15 views
3

ショッピングカートを書くときに、セッションIDを使用してカート情報をデータベースに保存するか、セッション変数のみを保存する必要がありますか?どうして?Phpショッピングカート

答えて

0

データベースに格納します。それは難しいことではありませんし、あなたに最高の結果をもたらすでしょう。さらに、人々がバスケットに入れた商品を追跡できますが、購入することはできません。

1

ユーザーがショッピングカートを保存できない場合、セッションIDはうまくいきます。ブラウザで起動すると変更できることを覚えておいてください。

ユーザーがカートを保管して取得できるようにするには、セッションIDに頼ることはできません。この場合、ユーザーアカウントが必要で、代わりにカートをユーザーIDにつなぎます。


[EDIT]すべての
まず、はい、私はあなたがDBにカートを保存するべきだと思います。 顧客がユーザーアカウントを持っていない限り、ユーザーを識別する唯一の方法は、セッションIDによるものであるか、または顧客を識別するクッキーをクライアントに書き込むことです。

最終的に、信頼性の高いカートの使い方によっては、顧客がブラウザを再起動したときにセッションIDが変更される可能性があるため、セッションIDを信頼できません。顧客がクッキーを無効にしている可能性があるため、クッキーの作成は信頼できません。もちろん、セッション変数はセッションIDで保留中です。

100%信頼できるカートを使用していない場合は、セッションIDの代わりにユーザーIDを使用できるように、顧客にログインさせる必要があります。

+0

私のポイントはログイン前とチェックアウト前です。 – wailynnoo

+0

@wailynnoo、私の更新。 –

1

実際には、それをどうしたいのですか。

ログインユーザーが2日後にカートを取得できるようにしたい場合は、それをdbに入れる必要があります。しかし、ログインしていないユーザーカートを保存することはできません(または、アイテムを追跡するためにのみ保存します)。したがって、ユーザーがログを記録するたびにチェックする必要があります。

利点は、ユーザーが別のブラウザまたはコンピュータを使用している場合でも、まだカートがあることです。

データベースの場合は、何も変更してはいけません。通常は、(ユーザーが製品を購入した場合)履歴があり、フィールドの履歴がブール値で、毎月クリーンな履歴を持つcronあなたがそれを必要とすれば)。

1

個人的には、ユーザーセッション内にショッピングカートを保管することには実質的な問題はありませんが、ブラウザーが閉じられると、ユーザーはショッピングカートの内容を失うことは明らかです。だから本当にそれはあなたの顧客が永続的なショッピングカートを持つことによって恩恵を受けると信じているかどうかにかかっています。データベースにショッピングカートを保存し、その後、人々がカートに追加されている項目を参照して、

だから、短いいくつかの価格問題を示す可能性が購入することができないように私はこれを勧めても問題はありません

答え....データベースに追加する:

関連する問題