Sesi di PHP menyediakan cara untuk menyimpan maklumat di beberapa halaman laman web. Tidak seperti kuki, yang menyimpan data pada penyemak imbas klien, data sesi disimpan di pelayan. Inilah cara kerja sesi dalam PHP:
session_start()
pada permulaan skrip php.$_SESSION
. Sebagai contoh, untuk menyimpan nama pengguna, anda akan melakukan $_SESSION['username'] = 'JohnDoe';
.session_start()
telah dipanggil. Sebagai contoh, untuk mendapatkan nama pengguna yang disimpan, anda akan menggunakan echo $_SESSION['username'];
.session_destroy()
. Walau bagaimanapun, ini tidak mencetuskan pembolehubah sesi; Anda juga mesti menggunakan session_unset()
untuk mengalih keluar semua pembolehubah sesi.Perbezaan utama antara sesi dan kuki dalam PHP adalah seperti berikut:
Lokasi Penyimpanan:
Keselamatan:
Batasan Saiz:
Jangka hayat:
Penggunaan:
Mengamankan data sesi dalam PHP untuk mengelakkan rampasan melibatkan beberapa strategi:
session_regenerate_id()
secara berkala atau selepas log masuk yang berjaya untuk membatalkan ID sesi lama dan menghasilkan yang baru. Tetapkan bendera yang selamat dan httponly: Konfigurasikan kuki sesi dengan bendera secure
dan httponly
untuk mengelakkan akses melalui JavaScript dan pastikan mereka hanya dihantar melalui HTTPS.
<code class="php">session_set_cookie_params([ 'lifetime' => 0, 'path' => '/', 'domain' => '', 'secure' => true, 'httponly' => true, 'samesite' => 'Strict' ]); session_start();</code>
Jangka hayat sesi di PHP boleh diuruskan melalui pelbagai teknik:
Jangka hayat lalai:
session.gc_maxlifetime
dalam fail php.ini
.Masa tamat sesi:
session.cookie_lifetime
dan session.gc_maxlifetime
dalam php.ini
. Tetapan ini mengawal seumur hidup cookie sesi dan tempoh pengumpulan sampah.Jangka hayat tersuai:
Anda boleh menguruskan jangka hayat sesi secara programatik dengan menetapkan sesi Cookie sepanjang hayat menggunakan session_set_cookie_params()
. Sebagai contoh, untuk menetapkan sesi untuk bertahan selama satu jam:
<code class="php">session_set_cookie_params(3600); // 3600 seconds = 1 hour session_start();</code>
Penjanaan Sesi:
session_regenerate_id()
boleh digunakan untuk melanjutkan jangka hayat sesi dengan menyegarkan cookie sesi.Tamat tempoh sesi:
session_destroy()
untuk menamatkan sesi dan membersihkan datanya. Di samping itu, menggunakan session_unset()
akan mengalih keluar semua pembolehubah sesi.Dengan menggunakan kaedah ini, anda boleh mengawal dan menguruskan jangka hayat sesi dalam PHP untuk memenuhi keperluan aplikasi anda.
Atas ialah kandungan terperinci Terangkan bagaimana sesi berfungsi dalam PHP.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!