Rumah >pembangunan bahagian belakang >masalah PHP >Empat cara untuk mengosongkan sesi secara automatik dalam php
PHP mengosongkan Sesi secara automatik
Sesi ialah mekanisme pengurusan keadaan sebelah pelayan yang biasa digunakan dalam pembangunan web. Mekanisme Sesi boleh menyimpan maklumat tentang pengguna di seluruh hierarki tapak web untuk digunakan semasa mereka menyemak imbas tapak web. Walaupun Sesi memberikan kemudahan dalam menjadikan tapak web lebih mudah digunakan dan lebih interaktif, jika Sesi tidak dibersihkan tepat pada masanya, ia akan menduduki memori pelayan. Oleh itu, adalah sangat munasabah untuk menjangkakan Sesi yang telah tamat tempoh akan dipadamkan melalui pembersihan automatik.
Dalam PHP, pembersihan Sesi automatik boleh dicapai melalui kaedah berikut.
Dalam fail php.ini, anda boleh menetapkan pilihan session.gc_probability dan session.gc_divisor. Apabila gc_probability dibahagikan dengan gc_divisor sama dengan 0, mekanisme kutipan sampah Sesi akan dimulakan.
Contohnya:
session.gc_probability = 1
session.gc_divisor = 100
Ini bermakna mekanisme pengumpulan sampah Sesi akan dimulakan dengan kebarangkalian 1% . Nilai lalai untuk pilihan ini ialah 1, yang bermaksud bahawa setiap permintaan pengguna cuba untuk memulakan mekanisme pengumpulan sampah.
Untuk memulakan mekanisme kutipan sampah secara automatik pada masa yang sama, anda boleh menambah pilihan berikut:
session.gc_maxlifetime = 1440
Ini bermakna Sesi tidak melahu selama 1440 saat (iaitu 24 minit) Ia akan dipadamkan selepas akses.
Gunakan fungsi ini_set() untuk menetapkan masa tamat tempoh Sesi. Contohnya:
ini_set('session.gc_maxlifetime', 1440);
session_set_cookie_params(1440);
Dengan cara ini, Sesi akan tamat tempoh dan dipadamkan selepas 1440 saat (iaitu. 24 minit).
Pemasa boleh mengosongkan Sesi yang telah tamat tempoh pada selang masa tetap. Anda boleh menggunakan fungsi setInterval() untuk mencipta pemasa, dan kemudian melakukan operasi pembersihan Sesi dalam pemasa.
Contohnya:
setInterval(function() {
$expire_time = time() - 1440; $files = glob(session_save_path() . '/sess_*'); foreach ($files as $file) { if (file_exists($file)) { if (filemtime($file) < $expire_time) { unlink($file); } } }
}, 600);
Di sini, pemasa akan menyala setiap 10 minit Lakukan pembersihan Sesi. Laluan fail Sesi diperoleh melalui fungsi session_save_path() Secara lalai, ia adalah /tmp.
Apabila menggunakan pemasa, anda juga perlu memberi perhatian kepada pemprosesan serentak, kerana pengguna lain mungkin mencipta Sesi baharu apabila pemasa melakukan operasi pembersihan.
Akhir sekali, jika kaedah di atas tidak dapat memenuhi keperluan anda, anda juga boleh mengosongkan Sesi secara manual. Sebagai contoh, apabila pengguna keluar, Sesi boleh dimusnahkan melalui fungsi session_destroy().
Contohnya:
session_start();
//Lakukan operasi keluar pengguna
session_destroy();
Pembersihan Sesi secara manual memerlukan pembangun untuk mengekalkannya sendiri. Lebih banyak masa dan usaha, tetapi juga menyediakan kawalan yang lebih terperinci.
Ringkasan
PHP secara automatik membersihkan sesi sambil meningkatkan prestasi tapak web, dan juga boleh menghalang sesi daripada menduduki terlalu banyak memori pelayan. Dengan mengkonfigurasi php.ini, masa tamat tempoh Sesi, pemasa dan pembersihan manual, pembangun boleh membersihkan Sesi dalam senario berbeza untuk meningkatkan kestabilan dan ketersediaan tapak web.
Atas ialah kandungan terperinci Empat cara untuk mengosongkan sesi secara automatik dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!