ตัวแปรเซสชัน PHP ใช้เพื่อเก็บข้อมูลเกี่ยวกับเซสชันของผู้ใช้ (เซสชัน) หรือเพื่อเปลี่ยนการตั้งค่าเซสชันของผู้ใช้ (เซสชัน) ตัวแปรเซสชันจัดเก็บข้อมูลสำหรับผู้ใช้รายเดียวและพร้อมใช้งานสำหรับทุกหน้าในแอปพลิเคชัน
เมื่อคุณทำงานบนแอปพลิเคชันบนคอมพิวเตอร์ คุณจะต้องเปิดแอปพลิเคชันนั้น ทำการเปลี่ยนแปลง แล้วจึงปิดแอปพลิเคชันนั้น มันเหมือนกับการสนทนามาก คอมพิวเตอร์รู้ว่าคุณเป็นใคร มันรู้เมื่อคุณเปิดและปิดแอพ อย่างไรก็ตาม เกิดปัญหาบนอินเทอร์เน็ต: เนื่องจากที่อยู่ HTTP ไม่รักษาสถานะ เว็บเซิร์ฟเวอร์จึงไม่ทราบว่าคุณเป็นใครและทำอะไร
เซสชัน PHP แก้ปัญหานี้โดยการจัดเก็บข้อมูลผู้ใช้ไว้บนเซิร์ฟเวอร์เพื่อใช้ในภายหลัง (เช่น ชื่อผู้ใช้ รายการที่ซื้อ เป็นต้น) อย่างไรก็ตาม ข้อมูลเซสชันเป็นเพียงข้อมูลชั่วคราวและจะถูกลบหลังจากผู้ใช้ออกจากไซต์ หากคุณต้องการจัดเก็บข้อมูลอย่างถาวร คุณสามารถจัดเก็บข้อมูลในฐานข้อมูลได้
กลไกการทำงานของเซสชันคือการสร้าง ID เฉพาะ (UID) สำหรับผู้เยี่ยมชมแต่ละรายและจัดเก็บตัวแปรตาม UID นี้ UID ถูกเก็บไว้ในคุกกี้หรือส่งผ่าน URL
ก่อนที่คุณจะสามารถจัดเก็บข้อมูลผู้ใช้ในเซสชัน PHP คุณต้องเริ่มเซสชันก่อน
หมายเหตุ: จะต้องวางฟังก์ชัน session_start() ก่อนแท็ก <html>:
<?php session_start(); ?><html><body></body></html>
โค้ดด้านบนจะลงทะเบียนเซสชันของผู้ใช้กับเซิร์ฟเวอร์ เพื่อให้คุณสามารถเริ่มบันทึกข้อมูลผู้ใช้ได้ และจะกำหนด UID ให้กับเซสชันของผู้ใช้
วิธีที่ถูกต้องในการจัดเก็บและเรียกข้อมูลตัวแปรเซสชันคือการใช้ตัวแปร PHP $_SESSION:
<?phpsession_start();//ข้อมูลเซสชันการจัดเก็บ $_SESSION['views']=1;?><html><head><meta charset="utf-8"><title>บทช่วยสอน Coder (codercto.com) < /title></head><body><?php// ดึงข้อมูลเซสชัน echo "Views:". $_SESSION['views'];?></body></html>
เอาท์พุท:
ยอดดู: 1
ในตัวอย่างต่อไปนี้ เราสร้างตัวนับการดูหน้าเว็บอย่างง่าย ฟังก์ชัน isset() ตรวจสอบว่ามีการตั้งค่าตัวแปร "views" หรือไม่ หากมีการตั้งค่าตัวแปร "มุมมอง" เราจะเพิ่มตัวนับ หากไม่มี "views" ให้สร้างตัวแปร "views" และตั้งค่าเป็น 1:
<?phpsession_start();if(isset($_SESSION['views'])){ $_SESSION['views']=$_SESSION['views']+1;}else{ $_SESSION['views']=1 ;}echo "การดู:". $_SESSION['การดู'];?>
หากคุณต้องการลบข้อมูลเซสชันบางส่วน คุณสามารถใช้ฟังก์ชัน unset() หรือ session_destroy()
ฟังก์ชัน unset() ใช้เพื่อปล่อยตัวแปรเซสชันที่ระบุ:
<?phpsession_start();if(isset($_SESSION['views'])){ unset($_SESSION['views']);}?>
คุณยังสามารถทำลายเซสชันได้อย่างสมบูรณ์ด้วยการเรียกใช้ฟังก์ชัน session_destroy():
<?phpsession_destroy();?>
หมายเหตุ: session_destroy() จะรีเซ็ตเซสชัน และคุณจะสูญเสียข้อมูลเซสชันที่เก็บไว้ทั้งหมด