Butiran artikel ini berkesan PHP 7 Pengurusan Sesi, meliputi fungsi teras seperti session_start (), $ _Session, session_destroy (), dan pengendalian kuki selamat. Ia menekankan amalan terbaik keselamatan termasuk HTTPS, Penjanaan ID Sesi, s
Pengurusan sesi yang berkesan dalam PHP 7 melibatkan pemahaman fungsi teras dan melaksanakan amalan terbaik. Pertama, anda perlu memulakan sesi menggunakan session_start()
. Fungsi ini memulakan sesi, sama ada menyambung semula yang sedia ada atau membuat yang baru. Secara kritis, ia mesti dipanggil sebelum sebarang output dihantar ke penyemak imbas. Mana -mana HTML atau Whitespace sebelum session_start()
akan mengakibatkan ralat.
Sebaik sahaja sesi dimulakan, anda boleh mengakses dan mengubah suai pembolehubah sesi menggunakan array superglobal $_SESSION
. Contohnya, untuk menyimpan ID pengguna:
<code class="php"><?php session_start(); $_SESSION['user_id'] = 123; ?></code>
Untuk mendapatkan ID pengguna pada halaman berikutnya:
<code class="php"><?php session_start(); $userId = $_SESSION['user_id']; echo "User ID: " . $userId; ?></code>
Ingatlah untuk selalu memanggil session_start()
pada permulaan setiap skrip yang perlu mengakses data sesi. Apabila anda selesai bekerja dengan sesi, anda boleh memusnahkannya menggunakan session_destroy()
. Ini menghilangkan semua pembolehubah sesi dan ID sesi. Walau bagaimanapun, ambil perhatian bahawa ini hanya memusnahkan data sesi di sisi pelayan; Kuki sisi klien yang mengandungi ID sesi kekal. Untuk menghapuskan sesi sepenuhnya dari penyemak imbas klien, anda juga perlu menyegarkan cookie sesi menggunakan setcookie()
.
<code class="php"><?php session_start(); session_unset(); // Unset all session variables session_destroy(); // Destroy the session setcookie(session_name(), '', time() - 42000, '/'); // Delete the session cookie ?></code>
Keselamatan adalah yang paling penting ketika berurusan dengan sesi. Berikut adalah beberapa amalan terbaik yang penting:
session_regenerate_id(true)
. Ini mengurangkan risiko merampas sesi. Hujah true
memastikan bahawa data sesi lama dipelihara.session_set_cookie_params()
untuk menetapkan bendera httponly
(mencegah akses JavaScript), bendera secure
(memerlukan https), dan jangka hayat yang singkat. Contoh:<code class="php"><?php session_set_cookie_params( 0, // Lifetime: 0 for session cookies (deleted when the browser closes) '/', // Path null, // Domain true, // Secure flag (HTTPS only) true // HttpOnly flag ); session_start(); ?></code>
Beberapa kesilapan biasa dan kelemahan pengurusan sesi wabak. Mengelakkan mereka adalah penting:
session.gc_maxlifetime
dalam fail php.ini
anda atau menggunakan session_set_cookie_params()
.Sesi lalai PHP mengendalikan data menyimpan data dalam fail secara lalai. Walaupun cukup untuk banyak aplikasi, kaedah alternatif menawarkan kelebihan bergantung kepada keperluan anda:
session.save_path
dalam php.ini
.Pilihan bergantung pada keperluan skala dan prestasi aplikasi. Untuk aplikasi bersaiz kecil dan sederhana, pendekatan berasaskan fail sering mencukupi. Bagi aplikasi trafik tinggi, pangkalan data atau kedai data dalam memori menawarkan prestasi dan skalabiliti yang unggul. Ingat bahawa mekanisme penyimpanan beralih memerlukan pelaksanaan pengendali sesi tersuai.
Atas ialah kandungan terperinci Bagaimana cara menggunakan sesi dengan berkesan dalam Php 7?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!