Rumah  >  Artikel  >  pembangunan bahagian belakang  >  php set sesi menjimatkan masa

php set sesi menjimatkan masa

王林
王林asal
2023-05-22 21:55:06905semak imbas

Dalam pembangunan laman web, sesi adalah mekanisme yang sangat penting Ia boleh membantu laman web menyimpan maklumat log masuk pengguna, data troli beli-belah dan maklumat lain yang serupa untuk mengekalkan konsistensi data semasa pengguna melayari laman web. Biasanya, masa penyimpanan sesi adalah sangat singkat kerana sebaik sahaja pengguna menutup pelayar, sesi akan dimusnahkan. Tetapi dalam beberapa kes di mana maklumat pengguna perlu disimpan untuk masa yang lama, kami perlu menetapkan masa penyimpanan sesi. Artikel ini akan memperkenalkan cara menetapkan masa penyimpanan sesi PHP.

  1. masa penyimpanan sesi

Sesi bergantung pada kuki, jadi kami secara tidak langsung boleh mengawal masa penyimpanan sesi dengan menetapkan masa tamat tempoh kuki. Apabila halaman menyimpan sesi dalam kuki, kuki itu disimpan pada mesin pengguna untuk tempoh masa tertentu dan dikosongkan oleh penyemak imbas selepas tamat tempoh. Dengan cara ini, sesi akan dimusnahkan kerana kuki yang sepadan tidak dapat ditemui.

Secara lalai, masa tamat tempoh kuki adalah semasa sesi penyemak imbas, yang bermaksud bahawa kuki akan sentiasa wujud selagi penyemak imbas tidak ditutup. Tetapi dengan menetapkan masa tamat tempoh kuki, kami boleh mengawal masa penyimpanan kuki dan dengan itu masa penyimpanan sesi. Berikut ialah contoh:

// 设置过期时间为30天
$expire_time = time() + 60 * 60 * 24 * 30;
setcookie('session_id', session_id(), $expire_time);

Dalam kes ini, kami menggunakan fungsi setcookie untuk menetapkan kuki session_id supaya sesi masih boleh diakses selepas penyemak imbas ditutup. Pembolehubah $expire_time ditetapkan kepada cap masa semasa dalam saat ditambah dengan bilangan saat dalam 30 hari, iaitu kuki ini akan tamat tempoh dalam masa 30 hari.

  1. session.gc_maxlifetime

Kami juga boleh menetapkan jangka hayat maksimum sesi dengan mengubah suai pilihan session.gc_maxlifetime dalam fail php.ini. Pilihan ini menentukan hayat sesi maksimum, dalam saat. Apabila sesi tamat, iaitu, selepas masa ini, ia akan dimusnahkan secara automatik oleh mekanisme pengumpulan sampah PHP. Secara lalai, nilai pilihan ini ialah 1440 saat (iaitu, 24 minit Kami boleh mengubah suai nilai ini dalam fail php.ini seperti berikut:

session.gc_maxlifetime = 1800

Ini akan menjadikan semua sesi mempunyai 30 Minit storan). masa, jika masa yang lebih lama diperlukan, nilai ini boleh ditetapkan kepada nilai yang lebih besar.

Perlu diambil perhatian bahawa jika kami menetapkan masa hayat sesi maksimum terlalu lama, ia mungkin menduduki terlalu banyak sumber pelayan dan menyebabkan beban pelayan menjadi terlalu tinggi.

  1. session_set_cookie_params

Selain menggunakan fungsi setcookie untuk menetapkan masa tamat tempoh kuki dan menetapkan jangka hayat maksimum sesi dengan mengubah suai pilihan session.gc_maxlifetime dalam fail php.ini, kami Anda juga boleh menggunakan fungsi session_set_cookie_params yang disediakan oleh PHP untuk menetapkan beberapa parameter kuki, dengan itu secara tidak langsung mengawal masa penyimpanan sesi. Fungsi ini menerima 4 parameter:

session_set_cookie_params($lifetime, $path, $domain, $secure);

Antaranya:

  • $lifetime: cookie lifetime, dalam saat
  • $path: cookie path; 🎜>$domain: nama domain kuki;
  • $secure: sama ada kuki hanya boleh dihantar melalui protokol HTTPS.
  • Apabila kami menggunakan fungsi session_start untuk memulakan sesi, parameter ini akan berkuat kuasa untuk mengawal masa penyimpanan sesi. Berikut ialah contoh kod yang menggunakan fungsi session_set_cookie_params untuk menetapkan jangka hayat kuki:
// 设置cookie的路径为整个域名,生存时间为1小时
session_set_cookie_params(3600, '/');
session_start();

Dalam contoh ini, kami menetapkan jangka hayat kuki kepada 1 jam dan laluan kuki kepada keseluruhan nama domain. sesi akan Disimpan pada klien dalam tempoh masa ini. Pendekatan ini lebih fleksibel daripada menetapkan masa tamat tempoh kuki secara langsung, kerana kami juga boleh mengubah suai laluan kuki dan nama domain pada bila-bila masa untuk mengawal masa penyimpanan sesi dengan baik.

Ringkasan
  1. Sesi ialah mekanisme yang sangat penting dalam pembangunan web. Ia boleh menyediakan banyak ciri berguna untuk tapak web, seperti pengesahan pengguna, troli beli-belah, dsb. Jika kita perlu menyimpan maklumat pengguna untuk jangka masa yang panjang, kita perlu mengawal masa penyimpanan sesi. Dalam PHP, kita boleh mencapai ini dengan menetapkan masa tamat tempoh kuki, mengubah suai pilihan session.gc_maxlifetime dalam fail php.ini atau menggunakan fungsi session_set_cookie_params. Perlu diingatkan bahawa masa storan sesi yang terlalu lama boleh meningkatkan beban pelayan dan menyebabkan masalah pelayan, jadi kami harus menetapkan masa storan sesi secara munasabah mengikut keperluan sebenar.

Atas ialah kandungan terperinci php set sesi menjimatkan masa. 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