ใน PHP ใช้ session_start() เพื่อเริ่มเซสชัน แต่หากเรียกซ้ำจะเกิด error ต้องตรวจสอบก่อนว่าเซสชันเริ่มต้นแล้วหรือยัง
มี 2 วิธี:
สำหรับ PHP ต่ำกว่า 5.4.0
ตัวอย่าง
<?php
if(session_id() == ''){
session_start();
}
?>
คำอธิบาย
ถ้ายังไม่เริ่มเซสชัน session_id() จะเป็นสตริงว่าง โค้ดนี้จะเริ่มเซสชันเสมอ
วิธีที่ 2: ใช้ session_status() (PHP 5.4.0 ขึ้นไป) ฟังก์ชันนี้คืนสถานะเซสชันเป็นค่าคงที่ 3 ค่า:
- 0 – PHP_SESSION_DISABLED: เซสชันถูกปิดใช้งาน
- 1 – PHP_SESSION_NONE: เซสชันเปิดใช้งาน แต่ยังไม่เริ่ม
- 2 – PHP_SESSION_ACTIVE: เซสชันเปิดใช้งานและเริ่มแล้ว
ตัวอย่าง
<?php
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
?>
คำอธิบาย
ตรวจสอบว่ายังไม่เริ่มเซสชัน (PHP_SESSION_NONE) ถ้ายัง จะเริ่มเซสชันใหม่
หมายเหตุ
session_status() ใช้ได้เฉพาะ PHP 5.4.0 ขึ้นไป