E N D
การใช้งาน Session ธีระพงษ์ แสงรักษาวงศ์
Session Session ถือเป็นตัวแปรชนิดหนึ่ง แต่เป็นตัวแปรที่แตกต่างกับตัวแปรชนิดอื่น ๆ เช่น String ,Integer ซึ่ง ขอบเขตของตัวแปรทั่วไป จะมีลักษณะเป็น Local ส่วนตัวแปร ชนิด Session จะมีลักษณะเป็น Global นั่นคือ ประกาศตัวแปรเพียงครั้งเดียว สามารถเรียกใช้ที่ใด ก็ได้ โดยที่ข้อมูลจะยังคงอยู่ตลอดเวลาใช้งาน เว้นแต่จะปิด Browser หรือยกเลิกการใช้งานตัวแปร Session
Session • เซสชั่น(Session) หรือเรียกเต็มว่า เว็บเซสชั่น(Web Session) คือ สิ่งที่ไคลเอนต์ (Client) สร้างขึ้นมาเมื่อเปิดเว็บบราวเซอร์และติดต่อมายังเว็บเซิฟเวอร์ผ่านทางยูอาร์แอล(URL) ของเว็บไซต์ เมื่อไคลเอนต์ทำการปิดโปรแกรมเว็บบราวเซอร์ เซสชั่นก็จะถูกทำลายหรือปิดลง ในกรณีที่ผู้ให้บริการเว็บไซต์ต้องการนำข้อมูลที่เกิดจากเซสชั่นที่ติดต่อเข้ามาไปใช้ จะต้องเขียนชุดคำสั่งเพื่อเก็บข้อมูล (Data) ของเซสชั่นที่สนใจไว้ในฐานข้อมูล
Session • สาเหตุประการหนึ่งที่จำเป็นต้องมีการเก็บข้อมูลเซสชั่น(Session) ของไคลเอนต์ก็เพราะ โปรโตคอลที่ใช้เพื่อการติดต่อกับเว็บไซต์ในปัจจุบัน ซึ่งได้แก่ HTTP เป็นโปรโตคอลที่ไม่มีการเก็บสถานะของตนเอง (Stateless)ทำให้ยากในการที่จะเก็บข้อมูลของแต่ละการเชื่อมต่อที่เข้ามายังเว็บไซต์ได้ ดังนั้น ในภาษาสำหรับการพัฒนาเว็บหลายๆ ภาษาจึงมีแนวคิดที่จะเก็บสถานะ รวมถึงข้อมูลการเชื่อมต่อของลูกข่ายแต่ละเครื่องที่ติดต่อเข้ามาที่เว็บไซต์เอาไว้ โดยจะนำข้อมูลการเชื่อมต่อดังกล่าวมาจัดเก็บไว้ในตัวแปร หรือบันทึกลงตารางข้อมูล • จากแนวคิดดังกล่าวของ Session ทำให้ผู้ดูแลระบบสามารถสืบค้นได้ว่าการติดต่อที่เกิดกับระบบเกิดจากลูกข่าย หรือเครือข่ายใด
ประโยชน์ของ Session การนำเซสชั่นมาใช้กับการพัฒนาเว็บไซต์ หรือเว็บไซต์เชิงพาณิชย์อิเล็กทรอนิกส์ จะช่วยให้ผู้ดูแลเว็บดังกล่าวสามารถติดตาม และตรวจสอบผู้ใช้ที่เข้ามาติดต่อกับเว็บไซต์ที่จัดทำขึ้นได้
การนำ Session ไปใช้ การนำเซสชั่นไปใช้มักอยู่ในรูปของ • การทำระบบ Login สำหรับสมาชิก • การจำกัดการเข้าถึงหน้าเว็บต่างๆ โดยผู้ที่ไม่ผ่านกระบวนการล็อกอิน หรือไม่มีสิทธิในระบบ จะทำให้ค่าของ Session ไม่เป็นไปตามเงื่อนไขสำหรับการเข้าถึงเพจดังกล่าว • การเก็บข้อมูลของสิ่งที่ผู้ใช้เลือก เช่น รายการสินค้าในรถเข็น (Shopping Cart)
ภาษาพีเอ็ชพีกับเซสชั่นภาษาพีเอ็ชพีกับเซสชั่น ภาษาพีเอ็ชพี (PHP) ที่นิยมใช้กันอย่างกว้างขวาง มีคุณสมบัติที่สำคัญประการหนึ่งคือมีการพัฒนาฟังก์ชั่นที่สนับสนุนการใช้ประโยชน์จากเซสชั่น โดยเริ่มมีตั้งแต่ PHP version 4 กระบวนการในการทำงานกับเซสชั่นด้วยพีเอ็ชพี ประกอบด้วย • เริ่มต้นเซสชั่น • ลงทะเบียนตัวแปร Session • ใช้ตัวแปร Session • ยกเลิก Session ที่ลงทะเบียนไว้ • ลบ Session
การเริ่มต้น Session • การเริ่มต้น Session ในภาษาพีเอ็ชพี (PHP) จะใช้ฟังก์ชั่น session_start( ); • รูปแบบคำสั่ง session_start( );
ตัวอย่าง ไฟล์ session_start.php <?php session_start( ); echo "<center>"; echo "หมายเลข sessionของคุณคือ ",session_id( ); ?>
ผลการทำงานของไฟล์ session_start.php *** Session ID :คือ หมายเลขประจำตัว หรือหมายเลขของเซสชั่นที่เซิฟเวอร์ ส่งมาให้ไคลเอนต์ โดยอาศัยคำสั่งพีเอ็ชพี
การลงทะเบียน Session การลงทะเบียน Session ในภาษาพีเอ็ชพี (PHP) ช่วยให้สามารถนำค่าต่างๆ ที่เก็บโดย Session ไปใช้กับส่วนอื่นๆ หรือเพจอื่นๆ ได้ ซึ่งการลงทะเบียน หรือ Register Session นี้ จะใช้วิธีการประกาศตัวแปร Session ดังนี้ รูปแบบคำสั่ง $_SESSION[‘ชื่อเซสชัน’];
ตัวอย่าง :การลงทะเบียนเซสชั่น และนำค่าเซสชั่นไปใช้ไฟล์ regis_session1.php <?php session_start(); $myfood =“Coffee”; $_SESSION['myfood'] = $myfood; ?>
การล้างค่าใน Session • การล้างค่าใน Session จะใช้คำสั่ง unset( ) ตามรูปแบบต่อไปนี้ • รูปแบบคำสั่ง unset($_SESSION[‘ชื่อเซสชั่น’]); ตัวอย่าง :การล้างค่าในเซสชั่นmyfood unset($_SESSION[‘myfood’]);
การปิด Session การปิดเซสชั่นคือกิจกรรมสุดท้ายหลังเสร็จสิ้นการใช้งาน Session โดยการปิด หรือทำลายเซสชั่นจะใช้คำสั่ง session_destroy( ) ตามรูปแบบต่อไปนี้ • รูปแบบคำสั่ง session_destroy( );
คำถามท้ายบท 1) จงอธิบายคำสั่งเกี่ยวกับเซสชั่นของภาษาพีเอ็ชพีมาพอสังเขป 2) ถ้าไม่ทำการ Start Session ก่อนจะลงทะเบียน Session ได้หรือไม่ 3) ถ้าไม่ทำการลบ Session จะทำให้เกิดอะไรขึ้น ? 4) คำสั่ง session_start() ควรอยู่ตำแหน่งใดในไฟล์ .php? 5) ท่านจะนำ session ไปประยุกต์ใช้กับ project ของท่านหรือไม่ หากใช่ จะนำไปใช้กับส่วนใดของ project
จงออกแบบหน้าจอสำหรับ Login โดยให้ระบุ USER Name และ Password หากถูกต้อง ให้ทำการลงทะเบียน Session สำหรับตัวแปร Username • โดยให้กำหนด username กับ password แล้วให้นำค่าที่ได้จากการกรอกฟอร์ม Login มาเปรียบเทียบ • หากกรอกข้อมูลผิดพลาด ให้กลับไปกรอกข้อมูลใหม่ • หากกรอกข้อมูลถูกต้อง ให้แสดงข้อความต้อนรับ พร้อมลิงค์สำหรับล้าง Session • เพจสำหรับล้าง Session ให้ทำการ Destroy Session แล้ว ทำลิงค์กลับไปหน้าหลัก
ยินดีต้อนรับ…… ล้างข้อมูลแล้ว กลับไปกรอกข้อมูลใหม่ <<<<