Menentukan tempoh sesi daripada data yang disediakan boleh menjadi agak mencabar. Mari kita mendalami butiran untuk mencari jawapannya.
Dalam PHP, sesi diuruskan oleh pemungut sampah (GC). Parameter session.gc_maxlifetime menentukan jumlah masa maksimum sejak perubahan terakhir dalam data sesi sebelum ditandakan untuk dialih keluar. Walau bagaimanapun, terdapat kelainan: GC tidak dipanggil setiap kali session_start digunakan.
Parameter session.gc_probability dan session.gc_divisor menentukan kebarangkalian GC akan dicetuskan semasa panggilan session_start. Secara lalai, nilai ini masing-masing ialah 1 dan 100, bermakna GC menjalankan hanya kira-kira 1% daripada panggilan sedemikian.
Fakta bahawa GC bukan sentiasa dipanggil bermakna, walaupun jika hayat sesi telah tamat secara teknikal (iaitu, data sesi telah ditukar sepanjang session.gc_maxlifetime saat yang lalu), ia masih boleh digunakan untuk tempoh yang lebih lama.
Disebabkan tingkah laku ini, secara amnya anda dinasihatkan untuk melaksanakan mekanisme tamat masa sesi anda sendiri daripada bergantung sepenuhnya pada GC PHP. Ini boleh membantu memastikan sesi ditamatkan dalam tempoh masa yang telah ditetapkan.
Atas ialah kandungan terperinci Berapa Lama Sesi PHP Sebenarnya Bertahan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!