Session
ข้อมูลที่ถูกสร้างขึ้นเมื่อใช้บราวเซอร์ ติดต่อเข้า Web Server และถูกทำลายเมื่อบราวเซอร์ของ client ถูกปิดลง ไฟล์จะถูกเก็บไว้ที่ฝั่ง Server ตัวลูกข่าย (Client) จะติดต่อกับ Session โดยอาศัย Session ID ที่ Web Server ส่งมาให้ ความแตกต่างของ Cookie กับ Session คืออายุของตัวแปร
•Session เริ่มมีอายุตั้งแต่ถูกประกาศ และจะยังคงมีอยู่ตราบเท่าที่บราวเซอร์ยังคงเปิดใช้งานอยู่ (พูดง่ายๆคือถ้าปิดเบราเซอร์ข้อมูลจะหายทั้งหมด) และต้องเป็นการปิดทุกหน้าเพจด้วย (ทั้งที่เกี่ยวข้องและไม่เกี่ยวข้อง)
•เอาข้อมูลของผู้ใช้ไปเก็บไว้ที่ฝั่งเซิร์ฟเวอร์ไว้ทำไม ???
- เพราะปัญหาของผู้ใช้ที่คิดว่า cookie ไปละเมิดสิทธิส่วนบุคคล จึงทำให้บราวเซอร์ต่างๆ ต้องให้ผู้ใช้สามารถเลือกได้ว่าจะอนุญาตให้ใช้คุกกี้ได้หรือไม่
- ถ้าผู้ใช้กำหนดไม่ยอมรับคุกกี้ ตัวแปรคุกกี้ก็ไม่มีสิทธิ์ไปสร้างไฟล์ไว้ได้ ดังนั้นมันจึงเกิดปัญหา หากว่าเราต้องการเก็บค่าข้อมูลเพื่อใช้ได้หลายๆ ครั้งก็จะลำบาก จึงต้องการใช้งาน session ขึ้น
- ถ้าผู้ใช้กำหนดไม่ยอมรับคุกกี้ ตัวแปรคุกกี้ก็ไม่มีสิทธิ์ไปสร้างไฟล์ไว้ได้ ดังนั้นมันจึงเกิดปัญหา หากว่าเราต้องการเก็บค่าข้อมูลเพื่อใช้ได้หลายๆ ครั้งก็จะลำบาก จึงต้องการใช้งาน session ขึ้น
•เริ่มสร้าง session ด้วยฟังก์ชัน
Session start()
เมื่อใช้คำสั่ง session_start() แล้วตัว Client จะได้รับ session id เราสามารถดู session id ได้ด้วยคำสั่ง
Session_id()
Session start()
เมื่อใช้คำสั่ง session_start() แล้วตัว Client จะได้รับ session id เราสามารถดู session id ได้ด้วยคำสั่ง
Session_id()
•<?php
session_start(); //เริ่ม session
echo "คุณได้รับ session id เท่ากับ : ";
echo session_id();
//เอา session id ที่ได้รับออกมาแสดงผล
?>
session_start(); //เริ่ม session
echo "คุณได้รับ session id เท่ากับ : ";
echo session_id();
//เอา session id ที่ได้รับออกมาแสดงผล
?>
Output
ตัวอย่างโปรแกรม login (session)
ตัวอย่างหน้าโค๊ดหน้า/ผลรัน session (index.php)
ตัวอย่างหน้าโค๊ดหน้า/ผลรัน session (login_process.php)
กรณี login ไม่ผ่านจะขึ้นหน้าตามภาพ
ตัวอย่างหน้าโค๊ดหน้า/ผลรัน session (main.php)