0

ブラウザを閉じてもセッションを維持したいので、使用しました

session_set_cookie_params(86400 * 60, '/', 'my.domain.com', true, true);

2 か月間有効な永続的な Cookie をクライアントに送信します (これは SSL サイトであるため、これもセキュア フラグを使用します)。ただし、非アクティブ状態が x 分間続くと、セッション変数がサーバー上でクリアされることがわかります。どうすればそれを回避できますか? 基本的に、Cookieが無効になるまでセッション変数を保存したい

ありがとう

4

3 に答える 3

1

session.gc_maxlifetime 構成プロパティを設定します。

許容値に関しては、ドキュメントはかなりまばらですが、2か月ほど長くはしたくありません。

通常は、重要なデータをデータベースに保存し、remember me cookie を使用してセッションが作成されたときに、そのデータをセッションに追加することをお勧めします。

実際のセッションのためにセッションを終了します。

于 2013-02-07T16:29:51.693 に答える
1

セッションでは、2 つのことを見ています。サーバー上のセッションがガベージ コレクションによってクリーンアップされるまでの時間と、Cookie の有効期限が切れるまでの時間。

Cookie の有効期限を変更しただけで、セッションは引き続きクリーンアップされます。ただし、セッションを延長することは、これを解決する優れた方法ではありません。コードが変更される可能性があり、ユーザーのセッションが壊れる可能性があります。いずれにしても、特定の最大時間後にストレージを削除する memcached などの共有セッション ストレージを使用する必要がある場合があります。

したがって、これを解決する方法は、代替ログイン キーとして使用できる一意のワンタイム Cookie を生成することです。このキーにより、ユーザーはユーザー名/パスワードと同様にログインできます。一度使用すると、新しいものが再生されます。

于 2013-02-07T16:30:41.633 に答える
0

セッション変数は、以下にコメントするように存続しますが、デフォルトの動作を変更しない限り、セッションが終了すると(つまり、ブラウザーが閉じられると)期限切れになります。

達成しようとしていることについては、$_COOKIE変数ではなく$_SESSION変数に値を格納する必要があります。

この記事を参照してください:http://buildinternet.com/2010/07/when-to-use-_session-vs-_cookie/

于 2013-02-07T16:24:06.930 に答える