Наскільки я розумію, тривалість сеансу в 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і session.gc_divisor 1 лише заради цього питання.
Тому що ви не хочете, щоб печиво загадково зникло? Ви хочете, щоб це було там, щоб сесія могла бути визнана недійсною? Це спричинює для вас якусь актуальну проблему?
—
Молот
Ось тоді. Але чи не було б кращою ідеєю зробити так, щоб термін дії файлів cookie закінчився через 40 годин, а сервер - 51 годину? Я маю на увазі термін використання файлів cookie менше, ніж термін дії сервера.
—
user5858
Це багато в чому ґрунтується на думці, і лише автори PHP дійсно можуть сказати. О, і це залежить від обробника сесії, який ви вирішили використовувати. Але зазвичай ні, ви не хочете, щоб сеанс, який повинен бути активним і придатним для використання ще протягом X годин, і ніхто не використовує його через відсутні файли cookie. Це марно зберігання. Якщо залишити файл cookie довше, це означає, що майже завжди є хтось, хто може використовувати дані сеансу, що зберігаються на сервері, тому жодні збережені дані сеансу не є марною.
—
Молот