Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menetapkan tamat masa sesi dalam php

Bagaimana untuk menetapkan tamat masa sesi dalam php

PHPz
PHPzasal
2023-04-12 17:32:431292semak imbas

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.

Apakah itu sesi 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.

Tetapan tamat masa sesi PHP

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.

Cara lain untuk menetapkan tamat masa sesi PHP

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).

Ringkasan

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn