Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

จะตรวจสอบได้อย่างไรว่าเซสชัน PHP ได้เริ่มต้นขึ้นแล้ว?


ใน PHP เราใช้ session_start() ฟังก์ชัน inbuilt เพื่อเริ่มเซสชัน แต่ปัญหาที่เราเผชิญในสคริปต์ PHP คือถ้าเราเรียกใช้งานมากกว่าหนึ่งครั้งจะทำให้เกิดข้อผิดพลาด ดังนั้น เราจะมาเรียนรู้วิธีตรวจสอบเซสชันที่เริ่มต้นหรือไม่โดยไม่ต้องเรียกใช้ฟังก์ชัน session_start() สองครั้ง

มีสองวิธีในการแก้ไขปัญหานี้

สำหรับเวอร์ชัน PHP 5.4.0 ที่ต่ำกว่า

ตัวอย่าง

<?php
   if(session_id() == ''){
      session_start();
   }
?>

คำอธิบาย

หากเซสชั่นไม่ได้เริ่มต้นโค้ดด้านบนนี้จะเริ่มเซสชั่นในสคริปต์ PHP เสมอ

ในวิธีที่สอง เราสามารถใช้ฟังก์ชัน session_status() ซึ่งจะคืนค่าสถานะของเซสชันปัจจุบัน ฟังก์ชันนี้สามารถคืนค่าจำนวนเต็มสามค่า ซึ่งทั้งหมดเป็นค่าคงที่ที่กำหนดไว้ล่วงหน้า เหล่านี้คือ:

  • 0 – PHP_SESSION_DISABLED:เซสชันถูกปิดใช้งานในขณะนี้
  • 1 – PHP_SESSION_NONE:เปิดใช้งานเซสชันแล้ว แต่ยังไม่ได้เริ่มเซสชัน
  • 2 – PHP_SESSION_ACTIVE:เปิดใช้งานเซสชันและเริ่มเซสชันแล้ว

ตัวอย่าง:

<?php
   if (session_status() == PHP_SESSION_NONE) {
      session_start();
   }
?>

คำอธิบาย

โค้ดด้านบนจะตรวจสอบว่าเซสชันเริ่มต้นขึ้นหรือไม่ หากไม่ได้เริ่ม เซสชันนี้จะเริ่มเซสชันในสคริปต์ PHP

หมายเหตุ

ฟังก์ชัน session_status() ทำงานในเวอร์ชัน PHP 5.4.0 ขึ้นไปเท่านั้น