Apabila membangunkan aplikasi web menggunakan PHP, anda biasanya perlu menggunakan pengurusan sesi. Pengurusan sesi merujuk kepada penciptaan dan penyimpanan beberapa data pada bahagian pelayan supaya ia boleh diakses semasa sesi yang ditubuhkan antara klien dan pelayan. Sessions biasanya menggunakan SessionID untuk mengenal pasti klien supaya pelayan boleh mengenal pasti klien dan mengaitkan data dengan klien tersebut.
Dalam PHP, pengurusan sesi dilaksanakan melalui sambungan session
. session
Pelanjutan menyediakan satu set fungsi untuk mencipta, membaca dan memadam data Sesi. Sebagai contoh, untuk membuat Sesi, anda boleh menggunakan kod berikut:
session_start();
Kod ini akan memulakan Sesi baharu dan mencipta ID Sesi pada bahagian pelayan. Jika Sesi telah wujud sebelum ini, kod ini akan membuka semula Sesi. SessionID disimpan dalam kuki klien (secara lalai) supaya ia dihantar secara automatik ke pelayan apabila sambungan baharu diwujudkan antara klien dan pelayan.
Secara amnya, gunakan tatasusunan $_SESSION
untuk menyimpan data Sesi. Contohnya, untuk menyimpan nilai dalam Sesi, anda boleh menggunakan kod berikut:
$_SESSION['userid'] = 1001;
Kod ini akan menyimpan pembolehubah bernama userid
dengan nilai 1001
dalam Sesi. Dalam kod berikutnya, anda boleh menggunakan $_SESSION['userid']
untuk mengakses nilai pembolehubah ini.
Walau bagaimanapun, kadangkala didapati tatasusunan $_SESSION
tidak dapat memperoleh data Sesi. Pada masa ini, kita perlu menyemak beberapa soalan biasa: Adakah fungsi
session_start()
tidak dipanggil, tatasusunan session_start()
tidak akan dapat menyimpan atau membaca data Sesi. Sebelum menggunakan tatasusunan $_SESSION
, fungsi $_SESSION
mesti dipanggil terlebih dahulu. session_start()
akan menyimpan ID Sesi dalam kuki di sisi klien. Jika pelanggan tidak menyokong kuki, SessionID tidak akan diperolehi. Pilihan session
boleh ditetapkan dalam fail php.ini
untuk mengawal sama ada kuki digunakan. session.use_cookies
dalam fail php.ini
. session.use_only_cookies
dalam fail php.ini
untuk mengelakkan konflik ini. session.name
mungkin disekat. Anda boleh menetapkan pilihan $_SESSION
dalam fail php.ini
untuk mengawal sama ada untuk mendayakan perlindungan XSS. session.cookie_httponly
tidak dapat memperoleh data Sesi, anda perlu menyemak masalah di atas dan menyelesaikannya satu demi satu. Apabila menggunakan sambungan $_SESSION
, terdapat beberapa langkah berjaga-jaga yang perlu diikuti untuk memastikan keselamatan dan kebolehpercayaan data Sesi. session
Atas ialah kandungan terperinci Mari kita bincangkan tentang perkara yang perlu dilakukan jika PHP tidak dapat memperoleh data sesi.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!