私が理解している限り、Drupalでのセッションの存続時間session.gc_maxlifetime
は、デフォルトで約2.3日に設定されています。
それではsession.cookie_lifetime
、23日に設定されていることの用途は何ですか?
以下は、settings.phpのスニペットです。
/**
* Set session lifetime (in seconds), i.e. the time from the user's last visit
* to the active session may be deleted by the session garbage collector. When
* a session is deleted, authenticated users are logged out, and the contents
* of the user's $_SESSION variable is discarded.
*/
ini_set('session.gc_maxlifetime', 200000);
/**
* Set session cookie lifetime (in seconds), i.e. the time from the session is
* created to the cookie expires, i.e. when the browser is expected to discard
* the cookie. The value 0 means "until the browser is closed".
*/
ini_set('session.cookie_lifetime', 2000000);
この質問のために、私は両方session.gc_probability
と1を設定したと仮定してくださいsession.gc_divisor
。
クッキーが不思議に消えてほしくないので?セッションを適切に無効にできるように、そこに配置したいですか?これは実際に問題を引き起こしていますか?
—
Mołot
それで終わりです。しかし、Cookieをたとえば40時間で失効させ、サーバーセッションを51時間で失効させる方がよいのではないでしょうか。つまり、Cookieの有効期間はサーバーの有効期限よりも短くなります。
—
user5858 2014
これは主に意見に基づくものであり、PHPの作者だけが実際に言えることです。ああ、それはあなたが使うことに決めたセッションハンドラーに依存します。しかし、通常はありません。Cookieが見つからないために、誰も使用せずにさらにX時間アクティブで使用可能であるはずのセッションは必要ありません。それはストレージの無駄です。Cookieを長く残すと、ほとんどの場合、サーバーに保持されているセッションデータを使用できるユーザーがいるため、セッションデータが保持されないことは無駄です。
—
Mołot