Sejauh yang saya mengerti seumur hidup sesi di Drupal dibatasi oleh session.gc_maxlifetimepengaturan secara default diatur ke sekitar 2,3 hari.
Lalu apa gunanya session.cookie_lifetimediatur ke 23 hari?
Berikut ini cuplikan dari 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);
Harap asumsikan bahwa saya telah menetapkan keduanya session.gc_probabilitydan session.gc_divisor ke 1 hanya untuk pertanyaan ini.
Karena Anda tidak ingin cookie menghilang secara misterius? Anda ingin ada di sana sehingga sesi dapat dibatalkan dengan anggun? Apakah ini menyebabkan masalah aktual bagi Anda?
—
Mołot
Itu saja. Tapi bukankah ide yang lebih baik untuk membuat cookie berakhir pada katakanlah 40 jam dan sesi server pada 51 jam? Maksud saya cookie seumur hidup kurang dari waktu kedaluwarsa server.
—
user5858
Ini sebagian besar berdasarkan pendapat dan hanya penulis PHP yang benar-benar tahu. Oh, dan itu tergantung pada pengendali sesi yang Anda putuskan untuk digunakan. Tapi biasanya tidak, Anda tidak ingin sesi yang seharusnya aktif dan dapat digunakan selama X jam lagi tanpa ada yang menggunakannya karena cookie yang hilang. Buang-buang penyimpanan. Meninggalkan cookie lebih lama berarti hampir selalu ada seseorang yang dapat menggunakan data sesi yang disimpan di server, jadi tidak ada data sesi yang terbuang sia-sia.
—
Mołot