Apabila bekerja dengan sesi PHP, kadangkala perlu mengubah suai tamat masa sesi untuk memanjangkan tempoh aktiviti pengguna sebelum sesi dianggap tamat. Walaupun ada kemungkinan untuk membuat perubahan pada fail php.ini, mungkin terdapat situasi di mana akses kepada fail ini tidak tersedia.
Dalam kes sedemikian, masa tamat sesi masih boleh dilanjutkan menggunakan kod PHP. Walau bagaimanapun, adalah penting untuk memahami bahawa melaksanakan tamat masa sesi yang ketat memerlukan pelaksanaan kod untuk menjamin penguatkuasaan yang ketat.
Jika anda bersedia menerima had bawah dan bukannya had ketat , anda boleh menetapkan parameter ini dengan mudah tanpa logik tersuai. Untuk sesi yang dilaksanakan dengan kuki, anda boleh mengubahsuai parameter berikut:
ini_set('session.gc_maxlifetime', 3600); // Server keeps session data for at least 1 hour session_set_cookie_params(3600); // Clients forget their session ID after 1 hour
Dengan menetapkan pelayan untuk mengekalkan data sesi selama sejam dan mengarahkan pelanggan melupakan ID sesi mereka dalam tempoh masa yang sama, anda menetapkan dengan berkesan sempadan atas pada tempoh sesi. Ambil perhatian bahawa kedua-dua langkah adalah penting untuk mencapai hasil ini.
Untuk persekitaran kritikal, anda boleh memastikan kawalan sepenuhnya dengan melaksanakan logik tersuai untuk meletakkan sempadan atas pada ketidakaktifan sesi, mewujudkan had masa yang ketat.
session_start(); $now = time(); if (isset($_SESSION['discard_after']) && $now > $_SESSION['discard_after']) { session_unset(); session_destroy(); session_start(); } $_SESSION['discard_after'] = $now + 3600; // Sets the upper limit to 1 hour
Dengan menjejaki masa tamat sesi dalam data sesi, anda menguatkuasakan rangka masa yang ketat untuk penggunaan sesi.
Apabila bekerja dengan ID sesi, sedar bahawa ia perlu dijana semula apabila perlu menggunakan session_regenerate_id untuk memastikan bahawa ia tidak boleh diramalkan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memanjangkan Masa Tamat Sesi PHP Tanpa Mengubah Suai php.ini?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!