2012-02-08 13 views
1

私はPHPでシンプルなショッピングカートを書いていますが、ユーザーが購入するアイテムをどのように保存すればよいか分かりません。クッキーを使うべきですか?もちろん、クッキーを使用した場合、クッキーに保存するのはSKUと数量のアイテムだけです。ユーザーが潜在的にそれらを変更する可能性があるので、私はクッキーに価格を格納しません。ショッピングカートの商品はどのように保管しますか?

ありがとうございました!

+0

私の最初のセッションのカートを構築する多くの '$ _SESSION' http://stackoverflow.com/questions/に保存する方法についての提案はこちらの回答を参照してください私を助けて、このリンクhttp://restyr.com/how-to-upload-multiple-data-to-php-session-variable/でこのチュートリアルを試してみてください7610828 /セッション不可能なセッション変数/特定の可変インデックス付き/ 7610928#7610928 –

+0

@Michael - ショッピングカートを訪問者が利用できないようにするログインしている場合は、ゲストをショッピングカートにリンクするためにクッキーを使用する必要があります。訪問者がウェブサイトを離れた後にセッション変数が削除されないのはなぜですか?カートをデータベースに格納する場合は、訪問者がカート内に持っているアイテムごとにテーブル内の1つの行を持つuser_id、item_id、quantityのような3列のテーブルを使用するか、すべてのアイテムと数量1つの列にコンマ区切りのリストを使用するか、それをシリアル化しますか?ありがとうございました! – user1197328

+0

退去したユーザーをリンクするには、カートをシリアル化してデータベースに保存し、それを識別するユーザーのクッキーに値を設定する必要があります。または期限切れのないセッションを作成する。シリアライズされた文字列ではなく個々のカートの値を格納するためにデータベースを使用するのはずっと多くの作業ですが、そうするつもりならば '$ _SESSION'を気にする必要はなく、代わりにデータベースそれのすべてのために。 –

答えて

5

ユーザーのセッション$_SESSION変数)にショッピングカートアイテムを保存することをお勧めします。セッション間で永続化する必要がある場合は、それらをデータベース表に入れます。

セッション変数では、サーバー側の改ざんから安全で、情報漏えい(Cookie内のすべてまたはGETパラメータがセッションID)を心配する必要はありません。

+0

データベース内のカートにアイテムと数量を保存することを提案します?明らかにこれらのパラメータは手前では決めることができないので、カート内の各項目の列を作成することはできません。データをシリアル化して列に格納するか、セッションIDを持つ別の列を持つべきですか? – user1197328

+0

@ user1197328セッションIDにリンクすると、セッションが終了するとセッションが終了します。カート項目と数量は、 'user_id'、' item_id'、および 'quantity'の3つの列だけで保存できます。 'user_id'はあなたが見ているショッピングカートを示し、テーブルの各行は彼らがカートに持っているアイテムの1つのタイプです。 – Borealid

+0

私は参照してください。ショッピングカートを訪問者が利用できるようにするには、ゲストをショッピングカートにリンクするためにクッキーを使用する必要がありますか?テーブルには3つの列を使用することをお勧めします。それは、訪問者が自分のカートに持っているアイテムごとにテーブルに1つの行があることを意味しますか?これは、1つの列にすべての項目と数量をカンマで区切って並べるか、またはシリアル化するより効率的ですか?ご協力いただきありがとうございます! – user1197328

0

$ _SESSIONを使用してアイテムIDと数量を保存できます。チェックアウトページで、ユーザーが注文を送信/確認すると、アイテムIDに対してDBからアイテム値を取得し、実際の価格を計算することができます。

0

データベースを使用する場合は、それらをデータベースに格納します。 ゲストショッピングがある場合は、そのゲストをセッション変数にリンクするtemp_cartに保存します。

$ _SESSIONを参照してください。

関連する問題