Menentukan Status Sesi dalam PHP
Memastikan pengendalian sesi yang betul adalah penting dalam pembangunan PHP. Walau bagaimanapun, menentukan sama ada sesi telah dimulakan boleh menjadi mencabar, terutamanya apabila memanggil skrip dari halaman dengan keadaan sesi yang berbeza.
Menyemak Status Sesi
Untuk mengelakkan amaran "sesi sudah dimulakan," pendekatan biasa ialah menggunakan kod berikut:
if(!isset($_COOKIE["PHPSESSID"])) { session_start(); }
Walau bagaimanapun, kaedah ini boleh mengakibatkan amaran "Pembolehubah tidak ditentukan: _SESSION." Penyelesaian yang lebih komprehensif melibatkan menyemak status sesi secara terus.
Pendekatan Disyorkan untuk PHP >= 5.4.0
Untuk PHP versi 5.4.0 dan ke atas, yang disyorkan kaedahnya ialah menggunakan session_status():
if (session_status() === PHP_SESSION_NONE) { session_start(); }
Fungsi ini mengembalikan status sesi semasa, yang boleh menjadi salah satu daripada tiga negeri:
Untuk Versi PHP sebelum 5.4.0
Untuk versi PHP yang lebih awal, anda boleh menggunakan semakan berikut:
if(session_id() == '') { session_start(); }
Menggunakan @session_start()
Walaupun menggunakan @session_start() untuk menyekat amaran boleh menggoda, ia biasanya tidak disyorkan. Pendekatan ini boleh membawa kepada tingkah laku yang tidak dijangka, kerana ralat atau amaran boleh menunjukkan isu asas yang harus ditangani dan bukannya diabaikan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan dan Mengurus Status Sesi PHP dengan Boleh Dipercayai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!