Keperluan untuk mengekalkan sesi hidup untuk masa tertentu dan kemudian menamatkannya adalah perkara biasa dalam pembangunan web. PHP menyediakan pilihan untuk menetapkan tamat masa sesi, tetapi ia mungkin tidak selalu menghasilkan hasil yang boleh dipercayai. Mari kita fahami kelemahan mekanisme PHP sedia ada dan teroka penyelesaian yang boleh dipercayai.
PHP menawarkan dua pilihan untuk menetapkan sesi tamat masa:
Untuk mewujudkan yang boleh dipercayai tamat masa sesi, laksanakan penyelesaian anda sendiri. Ini boleh dicapai dengan mengekalkan cap masa yang mewakili aktiviti pengguna terakhir.
if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 1800)) { // Last request was more than 30 minutes ago session_unset(); // Unset $_SESSION variable session_destroy(); // Destroy session data in storage } $_SESSION['LAST_ACTIVITY'] = time(); // Update last activity timestamp
Sebagai mengemas kini data sesi dengan setiap permintaan mengubah tarikh pengubahsuaian fail sesi , pemungut sampah tidak akan mengalih keluar sesi terlalu awal.
Untuk keselamatan tambahan, pertimbangkan untuk menjana semula ID sesi secara berkala untuk mengurangkan percubaan rampasan sesi:
if (!isset($_SESSION['CREATED'])) { $_SESSION['CREATED'] = time(); } else if (time() - $_SESSION['CREATED'] > 1800) { // Session started more than 30 minutes ago session_regenerate_id(true); // Change session ID and invalidate old one $_SESSION['CREATED'] = time(); // Update creation time }
Atas ialah kandungan terperinci Bagaimana untuk Menguruskan Sesi PHP Tamat Tempoh Selepas 30 Minit?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!