Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Belajar pengurusan sesi dalam PHP

Belajar pengurusan sesi dalam PHP

PHPz
PHPzasal
2023-06-21 10:01:061354semak imbas

Pengurusan sesi ialah bahagian penting dalam pembangunan web, ia membolehkan kami berkongsi data antara pengguna dan pelayan serta menjejaki pengguna merentas berbilang halaman. PHP menyediakan kaedah pengurusan sesi terbina dalam, menjadikannya bahasa yang ideal untuk membangunkan aplikasi web. Dalam artikel ini, kami akan menyelami pengurusan sesi dalam PHP dan membincangkan sesi, kuki, pengurusan sesi mudah menggunakan PHP dan beberapa teknik untuk menambah baik lagi.

Apakah sesi dalam PHP?

Dalam pembangunan web, sesi ialah mekanisme untuk menjejak status dan tingkah laku pengguna merentas berbilang halaman. Ringkasnya, ia adalah sambungan berterusan antara pelayan web dan klien web. Pelayan web menyimpan pengecam unik dalam kuki dan menyediakan pengecam ini dengan setiap permintaan seterusnya. Pengecam ini boleh digunakan untuk menjejak interaksi antara pengguna dan pelayan, dan data yang disimpan kekal tersedia sepanjang sesi.

Faedah pengurusan sesi

  • Membina data pengguna penjejakan dan cache
  • Sokongan keadaan aplikasi (cth. aspek troli beli-belah)
  • Sediakan Perkhidmatan pemperibadian

Apabila kami menggunakan aplikasi web, sila fikirkan dengan teliti tentang isu berikut. Contohnya, dalam dunia e-dagang, aplikasi perlu menentukan pengguna yang telah log masuk, item yang telah ditambahkan pada troli beli-belah, sejarah transaksi pengguna dan semua data lain yang berkaitan yang perlu disimpan. Sekarang, bagaimana anda menentukan pengguna yang menyerahkan data ini? Di sinilah pengurusan sesi masuk.

Pengurusan sesi ringkas menggunakan PHP

PHP menyediakan sokongan asli untuk pengurusan sesi. Panggilan fungsi session_start() memulakan sesi baharu atau memulihkan keadaan sesi sesi semasa. Mari kita lihat kod untuk contoh berikut, yang menyokong membuat dan menyimpan sesi dalam PHP:

session_start();
$_SESSION['username'] = 'john_doe';

Sekeping kod mudah seperti ini boleh memulakan sesi baharu dan menyimpan nama pengguna dalam sesi. Kami kemudiannya boleh mendapatkan dan mengeluarkan pembolehubah ini dalam sesi dengan kod berikut:

echo $_SESSION['username'];

Pengurusan ID Sesi

Setiap sesi mempunyai ID sesi, diwakili sebagai rentetan yang disulitkan ini data sesi dijamin dan Sesi dilindungi.

PHP menyediakan beberapa pilihan untuk mengurus ID sesi, yang mana kuki dan parameter URL adalah dua bentuk biasa.

Gunakan kuki untuk lulus ID sesi.

PHP boleh menggunakan "session.cookie_lifetime" untuk mengurus jangka hayat kuki sesi. Dalam contoh seterusnya, kami akan menetapkan kuki untuk tamat tempoh selepas 1 saat:

ini_set('session.cookie_lifetime', 1);

Sekarang, PHP menetapkan kuki pada pelayar klien dan Simpan ID sesi. Kuki ini akan tamat tempoh secara automatik selepas 1 saat. Kod berikut boleh digunakan untuk mengesahkan bahawa anda mempunyai sesi dan mendapatkan semula pembolehubah $_SESSION:

if (isset($_SESSION['username'])) {

echo $_SESSION['username'];

} else {

echo 'Session is not set.';

}

Berdasarkan ini, kami boleh menggunakan petunjuk pada mana-mana halaman dalam PHP untuk mengesahkan bahawa data sesi dan sesi tersedia, dengan itu mengekalkan keadaan aplikasi web (seperti troli beli-belah).

Gunakan parameter URL untuk menghantar ID sesi.

Dalam sesetengah kes, penyemak imbas mungkin melumpuhkan kuki sesi, atau kami ingin menambahkan ID Sesi pada URL apabila berurusan dengan API RESTful dsb. Pada ketika ini, kita boleh menetapkan session.use_only_cookies kepada false, supaya PHP menambahkan ID Sesi pada URL:

$session_name = session_name();
$id = session_id();
$ laluan = session_save_path();
$url = "http://example.com/?{$session_name}={$id}";
header('Lokasi: ' . $url);

Coretan kod ini akan menambah ID sesi pada URL, memastikan semua interaksi pengguna akan sentiasa kekal di bawah sesi yang sama.

Petua untuk pengurusan sesi yang dipertingkatkan dengan PHP

  • Lumpuhkan penulisan mesej automatik. Dalam PHP, gunakan bendera session.auto_start untuk memaksa sesi bermula secara automatik pada pemuatan halaman. Walau bagaimanapun, ini boleh menyebabkan kebocoran data secara tidak sengaja. Oleh itu, kami menetapkan session.auto_start kepada false dan kemudian mendayakan kod sesi permulaan kami sendiri untuk memastikan sesi hanya dimulakan apabila benar-benar diperlukan.
  • Kemas kini ID Sesi menggunakan Kuki. Untuk memastikan keselamatan ID Sesi, gunakan sambungan HTTPS apabila mungkin untuk melindungi kerahsiaan kuki pelanggan. Juga, hasilkan ID sesi secara rawak untuk memastikan ia cukup kuat dan sukar untuk diteka.
  • Hancurkan sesi. Tamatkan Sesi dengan memanggil fungsi session_destroy() secara langsung, dengan itu memusnahkan sepenuhnya sesi dan mengosongkan data sesi. Selain itu, kami juga boleh menggunakan session.gc_probability dan session.gc_divisor untuk menetapkan kebarangkalian kutipan sampah sesi bagi memastikan data sesi yang ditinggalkan pada pelayan dipadamkan apabila sesi tidak lagi digunakan.

Kesimpulan

Dalam artikel ini, kami memperkenalkan teknik untuk melaporkan status data dalam PHP dan membincangkan cara melaksanakan sesi menggunakan pengurus sesi terbina dalam PHP. Dengan menggunakan teknologi ini, kami boleh menjejaki interaksi nyata antara pengguna dan aplikasi web dengan mudah dan membina aplikasi web yang sangat diperibadikan. Kami berharap maklumat ini berguna kepada pembangun projek web berasaskan PHP.

Atas ialah kandungan terperinci Belajar pengurusan 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