Насколько я понимаю, время жизни сессии в 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 означает, что почти всегда есть кто-то, кто может использовать данные сеанса, хранящиеся на сервере, поэтому никакие данные сеанса не являются пустой тратой.
—
Молот