1

セッション、ブラウザ、Magento(またはおそらくそのことについてはショッピングカート)に関していくつかのことを理解するのに苦労しています。デフォルトで24分間操作がないと、セッションが閉じられることを理解しています。また、ブラウザを完全に終了すると、そのセッションも閉じられることを理解しています。

2番目の部分をテストするために、Magentoストアにアクセスし、カートに製品を追加して、ブラウザーを完全に終了しました。ブラウザを再度開いても、製品はまだカートに入っていました。どうですか?PHPガベージコレクターは特定の時間にのみ実行されますか?セッションが停止するため、マシンに保存されているCookieにリンクできないと考えました。どんな助けでも大歓迎です。

4

3 に答える 3

4

ネイティブ PHP セッションは、有効期限が 0 の Cookie を使用します。この Cookie は、ブラウザー ウィンドウが閉じられるとすぐに消去されます。Magento のセッション Cookie (Emi が指摘したように) は 3 時間の有効期限があり、ブラウザー セッション間で保持されるため、ブラウザー ウィンドウを閉じたり開いたりしてもセッションが再開されることはありません。Firefox Web 開発者ツールバー、または Chrome の開発者ツールを使用すると、強制的に Cookie をクリアし、必要に応じてセッションを再開できます。

また、Cookie の名前が異なり、有効期限がありますが、内部では Magento が PHP のネイティブ セッション サポートを使用していることにも注意してください。これは、セッションの最大有効期間などに関連する php.ini の設定が Magento のセッションにも影響することを意味します。

また、Magneto 1.6 (および EE 1.11) 以降、永続的なショッピング カートと呼ばれる機能があり、セッション間でショッピング カートを維持する目的で長期 Cookie を確立します。セッションが維持されているかどうかを確認するためのテストがカートを見るだけの場合、この機能により、セッションが実際よりもはるかに長く見える可能性があります..

于 2012-06-05T22:45:37.447 に答える
1

セッションはサイトのサーバーにローカルに保存されます(ほとんどの場合ファイルシステムに保存されますが、データベース、apc、memcachedなどの他のタイプのデータストレージを使用できます)。これはlocal.xmlで構成されます。ファイルシステムに保存すると、/ path_to_site_root / var/sessionsの下にあります。セッションを使用するモデルは「core/session」、「customer / session」、「admin / session」の3つだと思います。また、phpのガベージコレクターを構成することもできます。 :http ://ca.php.net/manual/en/session.configuration.php#ini.session.gc-maxlifetime

ブラウザを閉じると、Cookieの有効期限が0に設定されている場合、そのCookieは使用されなくなりますhttp://ca.php.net/manual/en/function.setcookie.php MagentoのデフォルトのCookieはフロントエンドと呼ばれ、有効期限を少なくとも1時間に設定します。また、このCookieはhttpのみであるため、JavaScriptから変更することはできません。

于 2012-06-05T21:45:32.130 に答える
1

サーバーは、ウィンドウを閉じるか、ページにとどまるか、ブラウジングするかの違いを実際には判断できません。少なくとも、Magento には組み込まれていない追加のスクリプトが必要です。セッションをテストする場合は、24 分間待つか、別のブラウザーを試すか、サーバー上のすべてのセッション ファイルを消去してください。

于 2012-06-05T21:02:28.717 に答える