Trong PHP, chúng ta sử dụng session_start () một hàm có sẵn để bắt đầu phiên. Vì vậy, ở đây chúng ta sẽ học cách kiểm tra phiên đã bắt đầu hay chưa mà không cần gọi hàm session_start () hai lần.
Có hai cách làm theo để giải quyết vấn đề này.
Đối với phiên bản PHP 5.4.0 bên dưới.
Ví dụ
<?php if(session_id() == ''){ session_start(); } ?>
Giải thích
Nếu phiên không bắt đầu, mã ở trên sẽ luôn bắt đầu phiên trong tập lệnh PHP.
Trong phương thức thứ hai, chúng ta có thể sử dụng hàm session_status (), hàm này trả về trạng thái của phiên hiện tại. Hàm này có thể trả về ba giá trị số nguyên, tất cả đều là hằng số được xác định trước. Đây là:
- 0 - PHP_SESSION_DISABLED:Các phiên hiện đang bị tắt.
- 1 - PHP_SESSION_NONE:Các phiên được bật nhưng chưa có phiên nào được bắt đầu.
- 2 - PHP_SESSION_ACTIVE:Các phiên được bật và một phiên đã được bắt đầu.
Ví dụ:
<?php if (session_status() == PHP_SESSION_NONE) { session_start(); } ?>
Giải thích
Đoạn mã trên kiểm tra xem phiên đã bắt đầu hay chưa, nếu chưa bắt đầu, nó sẽ bắt đầu phiên trong tập lệnh PHP.
Lưu ý
Hàm session_status () chỉ chạy trong phiên bản PHP 5.4.0 trở lên.