0

ここで多くの質問/解決策を読んでも、本当に解決できない状況にあります。基本的に、私は小さなショッピング カート アプリケーションを書いています。ユーザーがカートに追加したアイテムを保存する方法を見つけていたところ、$_SESSION を使用することになりました。

問題は、ブラウザを閉じると、保存されたすべてのカート データが失われることです。カートに「追加」するたびに新しい配列として保存する必要があるため、$_COOKIE に頼ることはできず、Cookie を使用してそれを行う方法を見つけることができませんでした (さらに、制限などがあります)。今何をすべきか混乱しています。

ゲスト用のカート データも保存していますが、DB を使用することはできません。助言がありますか?

4

5 に答える 5

3

カートをデータベースに保存してみませんか。一意のIDをユーザーのCookieに保存します(または、認証/ログインシステムを使用している場合は、ユーザーIDを使用します)。データベースに保存すると、不完全な注文を確認できるという利点もあります。これは、統計やリターゲティングマーケティングなどに役立つ可能性があります。

于 2012-09-05T10:25:30.327 に答える
2

ブラウザを閉じるとカートのアイテムが失われるのは標準的な方法だと思います。

HTML5 ローカル ストレージを使用してみてください:-

ローカル ストレージのチュートリアル

于 2012-09-05T10:23:18.257 に答える
1

セッションCookieの有効期間を設定する必要があります。この有効期間は、デフォルトではブラウザが閉じられるまで有効です。

于 2012-09-05T10:24:38.470 に答える
1

ご指摘のとおり、ブラウザを閉じるとセッションは維持されません。

データベース、またはあらゆる種類のサーバー側ストレージがオプションではない場合。LocalStorage を使用してクライアント側に保存することを検討してください。ローカル ストレージのデータは、ブラウザーを閉じても保持されます。ブラウザはドメイン名をデータに関連付けます。

ローカル ストレージを使用する際の注意事項がいくつかあります。

まず、ローカル ストレージはクライアント側にあるため、PHP で操作できるようにデータをサーバーに戻す必要がある場合があります。(カートデータを処理するためにサーバー側が必要であると仮定します。) このスタックオーバーフローの投稿を参照してください: PHP & localStorage;

次に、ユーザーはローカル ストレージを制限なく変更できます。

第 3 に、IE8 までは IE でサポートされていません。また、IE6/7 に関心がある場合は、cookie アプローチにフォールバックする必要があるかもしれません。

于 2012-09-05T10:28:02.877 に答える
0

ブラウザを閉じるとセッションがクリアされるため、Cookieを使用する必要があります。

配列をCookieに保存する方法を理解するには、この投稿をご覧ください:phpでCookieの値を更新する

Troelsknの方法は私が使用する方法ですが、カートIDをデータベースに保存することは賢明なことのようです:)。

于 2012-09-05T10:24:35.927 に答える