サーバー上でセッション変数が存続するデフォルトの時間は 1440 秒または 24 分です。それでは、変数がゴミとして消えるとしたら、変数の目的は何ですか? これは、セッション変数が更新されているため、ユーザーが 24 分ごとにログアウトされるということですか? ユーザーが 2 週間ログインしたままにできるように、session.gc_maxlifetime を 2 週間程度に変更するのは賢明ですか? これはすべて非常に紛らわしいので、事前に何らかの助けをいただければ幸いです!
4 に答える
あなたはセッションのポイントを逃しています。セッションは通常、ユーザーがブラウザーを閉じるまで持続します (ブラウザーがデフォルトでセッション Cookie を削除する時点)。セッションを 2 週間開いたままにしておくと、ユーザーがログアウトするのを忘れた場合、他の誰かがページを開いてログインする可能性があります。
セッションは、ユーザーが最後にページを操作してから 24 分 (または設定が何であれ) 有効です。ajax を使用している場合、ajax 呼び出し自体がセッションを延長するため、ブラウザーでページが開いている間、ユーザーはログアウトされません。
「記憶する」または「ログイン状態を維持する」機能はまったく異なるものであり、通常、トークンを使用して別の Cookie (2 週間で期限切れになる可能性があります) を設定し、ユーザーを自動的にログインさせて新しいセッションを開始します。実際にセッションをデータベースに保持し、同じセッションを復元することができます。
セッションはユーザーのブラウザの Cookie に依存していることに注意してください。この Cookie は通常、有効期間が短いものです。
あなたが正しいので、明らかにそれほど混乱していません.セッションはその時間後(またはユーザーがブラウザーを閉じたとき)に期限切れになり、その設定を変更するとサーバー上のセッションストアの寿命に影響します. もちろん、ユーザーがページにアクセスするたびに、時間は再び 24 分に設定されます。
ただし、本当に長期保存が必要な場合は、データベースまたは Cookieを使用してください。セッションは単なるセッションであるため、実際にはセッションを使用しないでください(英語では、サイトへの 1 回の訪問を意味するため、ユーザーがサイトを閉じるまで)。
これを試してみてください。これはデータベースの単純なストレージ セッションです