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.
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.
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.
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:
// 设置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.
RingkasanAtas ialah kandungan terperinci php set sesi menjimatkan masa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!