PHP telah menjadi salah satu bahasa standard untuk pembangunan web kerana kemudahan pembelajaran, kemudahan penggunaan dan fungsi yang berkuasa. Walau bagaimanapun, dalam aplikasi web, masalah tamat masa sesi menyusahkan ramai pembangun. Tamat masa sesi bermakna apabila pengguna tidak melakukan sebarang operasi untuk tempoh masa, sesi pelayan akan tamat tempoh secara automatik dan data sesi akan dikosongkan. Dalam sesetengah kes, kami ingin mengawal tamat masa sesi Artikel ini akan memperkenalkan cara untuk menetapkan tamat masa sesi dalam PHP.
Sesi PHP ialah mekanisme untuk menyimpan data di bahagian pelayan. Selepas pengguna mewujudkan sambungan dengan pelayan web, pelayan web mencipta ID sesi unik untuk setiap pengguna. Pelayan akan menggunakan ID sesi untuk menyimpan data bagi setiap sesi.
ID sesi akan disimpan dalam kuki pelanggan Setiap kali pengguna berkomunikasi dengan pelayan, penyemak imbas web akan menghantar kuki yang mengandungi ID sesi. Pelayan menggunakan ID sesi untuk mencari sesi yang dikaitkan dengan pengguna dan mengekalkan data sesi ini antara permintaan pengguna dan respons pelayan.
Dalam PHP, kita boleh menggunakan $_SESSION
pembolehubah global untuk mengakses data sesi. Contohnya:
session_start(); // Set session variable $_SESSION['username'] = 'John Doe'; // Get session variable $loggedInUser = $_SESSION['username'];
Kod di atas mencipta atau memulihkan data sesi yang sepadan dengan klien selepas session_start()
dipanggil. $_SESSION
Boleh digunakan untuk membaca atau mengubah suai data sesi yang disimpan.
Secara lalai, data sesi PHP disimpan dalam direktori session.save_path
pelayan dan tamat masa sesi lalai ditetapkan dalam fail konfigurasi php.ini
ialah 1440
saat (iaitu, 24 minit). Masa ini sesuai untuk kebanyakan pengaturcara dan aplikasi. Walau bagaimanapun, nilai lalai ini mungkin tidak sesuai untuk sesetengah aplikasi atau senario. Sebagai contoh, dalam beberapa kes kami ingin menetapkan tamat masa menjadi lebih pendek kerana pengguna mempunyai lebar jalur terhad atau mempunyai keperluan keselamatan lain.
Kami boleh mengubah suai tamat masa sesi PHP melalui dua parameter berikut:
session.gc_maxlifetime
- Parameter ini digunakan untuk menetapkan tamat masa sesi. session.gc_probability
dan session.gc_divisor
- Parameter ini digunakan untuk menetapkan kebarangkalian mekanisme pengumpulan sampah automatik. Untuk menetapkan tamat masa sesi, anda boleh menambah kod berikut dalam fail php.ini
:
session.gc_maxlifetime = 1440
Kod di atas menetapkan tamat masa kepada 1440 saat (iaitu 24 minit ). Kami juga boleh menetapkan nilai ini kepada masa yang lebih singkat, seperti 5 minit (iaitu 300 saat).
session.gc_maxlifetime = 300
Dengan kod di atas, jika pengguna tiada aktiviti dalam masa 5 minit, pelayan akan mengosongkan data sesi pengguna secara automatik.
Perlu diambil perhatian bahawa nilai session.gc_maxlifetime
hendaklah kurang daripada tamat masa pelayan web, jika tidak, data sesi mungkin dikosongkan semasa pengguna masih menggunakannya.
Selain menetapkannya dalam fail konfigurasi php.ini, kami juga boleh menetapkan tamat masa sesi dalam aplikasi menggunakan kod berikut:
// Set session timeout to 5 minutes ini_set('session.gc_maxlifetime', 300); // Start session session_start();
Dalam kod di atas, gunakan fungsi ini_set()
untuk mengubah suai session.gc_maxlifetime
kepada 300 saat (iaitu 5 minit). Kita perlu memanggil session_start()
sebelum memanggil fungsi ini_set()
.
Cara lain untuk menetapkan tamat masa sesi ialah menukar tamat masa lalai melalui fail .htaccess
. Kita boleh menambah kod berikut pada fail:
php_value session.gc_maxlifetime 300
Kod di atas menetapkan tamat masa sesi kepada 5 minit (iaitu 300 saat).
Dalam artikel ini, kami mempelajari konsep asas tamat masa sesi PHP dan memperkenalkan cara untuk menetapkan tamat masa sesi dalam PHP. Kita boleh mengawal tamat masa sesi dengan mengubah suai fail php.ini
, menggunakan fungsi ini_set()
atau menambah konfigurasi dalam fail .htaccess
.
Dalam pembangunan sebenar, kita perlu memilih tamat masa sesi yang sesuai berdasarkan senario aplikasi dan keperluan sebenar.
Atas ialah kandungan terperinci Bagaimana untuk menetapkan tamat masa sesi dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!