Session หรือ Web Session เป็น value ที่จะถูกสร้างขึ้นมาเมื่อ Client มีการเปิดเว็บบราวเซอร์และติดต่อกับ URL ของเว็บไซต์นั้น เมื่อ Client ปิดตัวลง session จะถูกทำลายหรือปิดลง ข้อมูลจะถูกบันทึกลง session ในฝั่ง server สามารถเก็บค่าข้อความหรือตัวเลข และตัวแปรที่เป็น Object ต่างๆ ได้ แต่มีความพิเศษคือ ค่าตัวแปรจะยังคงอยู่ไม่ว่าจะเปลี่ยนหน้าไปหน้าใดก็ตาม
Session นิยมนำมาใช้ในการรับส่งค่าข้อมูลที่เก็บเป็นความลับที่จะต้องใช้ในการระบุตัวตนโดยใช้สิทธิ การยืนยันตัวตนด้วย Username และ Password เพื่อให้ได้ค่าตัวแปรนี้มาระบุตัวตน ตัวแปรเซสชั่นจึงมีความปลอดภัยในการเก็บรักษาข้อมูลได้อย่างมาก
อ้างอิงรูปภาพจาก https://dev.to/dennis1001/understanding-cookies-and-sessions-in-php-35k5
ก่อนการใช้งานตัวแปรเซสชั่น เพื่อโหลดข้อมูลเซสชั่น (session) มาเก็บไว้ที่หน่วยความจำ ต้องใช้คำสั่งเพื่อเปิดเซสชั่นดังนี้
ใช้ไฟล์ php เพื่อติดต่อกับ session ฝั่ง Server และส่ง html ไปยังฝั่ง Client ตัวอย่าง สร้างไฟล์ demo_session1.php
ตัวอย่าง ส่วนกำหนดตัวแปรเซสชั่น (session)
ต่อไป เราจะสร้างอีกหน้าชื่อ "demo_session2.php" จากหน้านี้ เราจะเข้าถึงข้อมูลเซสชันที่เราตั้งค่าไว้ในหน้าแรก ("demo_session1.php")
โปรดสังเกตว่าตัวแปรเซสชันจะไม่ถูกส่งแยกกันไปยังแต่ละหน้าใหม่ แต่จะถูกดึงมาจากเซสชันที่เราเปิดที่จุดเริ่มต้นของแต่ละหน้าแทน (session_start())
โปรดสังเกตด้วยว่าค่าตัวแปรเซสชันทั้งหมดถูกเก็บไว้ในตัวแปร $_SESSION
ตัวอย่าง ส่วนแสดงผลตัวแปรเซสชั่น (session)
1. เปิดหน้า demo_session1.php
2. เปิดหน้า demo_session2.php
เซสชันส่วนใหญ่จะตั้งค่ารหัสผู้ใช้บนคอมพิวเตอร์ของผู้ใช้ที่มีลักษณะดังนี้: 765487cf34ert8dede5a562e4f3a7e12 จากนั้น เมื่อมีการเปิดเซสชันในหน้าอื่น ระบบจะสแกนคอมพิวเตอร์เพื่อหารหัสผู้ใช้ หากมีการจับคู่ จะเข้าถึงเซสชันนั้น หากไม่ตรงกัน จะเริ่มเซสชันใหม่
หากต้องการลบตัวแปรเซสชันทั่วโลกทั้งหมดและทำลายเซสชัน ให้ใช้ session_unset() และ session_destroy()
ตัวอย่าง การลบค่าเซสชั่น (session)
ส่งข้อมูลแนบต่อท้าย URL ในแบบ Query String ทำให้ผู้ใช้งานสามารถมองเห็นข้อมูลที่ส่งไปได้ เหมาะสำหรับการส่งข้อมูลสั้นๆ ไม่เกิน 256 ตัว
ส่วนของ PHP ที่ได้จากฟอร์ม (form) ไปประมวลผล ในการจะรับข้อมูลแบบ GET นั้น ฟอร์ม (form) ที่ส่งข้อมูลมา จะต้องกำหนด method="get" จะใช้ตัวแปร $_GET ในการรับข้อมูล อ้างอิงถึง name ของ tag นั้นๆ
ส่วนของ PHP ที่ได้จากฟอร์ม (form) จะส่งข้อมูลแนบต่อท้าย URL มาด้วย
ส่งข้อมูลไม่แสดงข้อมูลที่ส่งไปให้เห็นผ่าน URL เหมาะสำหรับการส่งข้อมูลแบบยาวๆ เพราะไม่มีข้อจำกัดของเรื่องขนาดของข้อมูลที่ส่ง และต้องการความปลอดภัย
ส่วนของ PHP ที่ได้จากฟอร์ม (form) ไปประมวลผล ในการรับข้อมูลในการจะรับข้อมูลแบบ POST นั้น ฟอร์ม(form) ที่ส่งข้อมูลมา จะต้องกำหนด method="post" ในภาษา PHP จะใช้ตัวแปร $_POST ในการรับข้อมูล อ้างอิงถึง name ของ tag นั้นๆ
การส่งค่าไปหน้าอื่นด้วย post จะเป็นการส่งค่าผ่านแท็ก form ร่วมกับปุ่ม submit จากตัวอย่างโค้ด input text มีตัวแปรชื่อ name เมื่อผู้ใช้งานกรอกข้อมูล และกดปุ่ม submit ตัวแปร name จะถูกส่งไปที่ไฟล์ที่กำหนด จากนั้นรับค่าด้วย $_POST['name'] หมายความว่ารับค่าตัวแปรชื่อ name ชนิด post ด้วยคำสั่ง $_POST ส่วนของ PHP ที่ได้จากฟอร์ม (form) จะ ไม่ ส่งข้อมูลแนบต่อท้าย URL มาด้วย