บทที่ 10 Session และ Cookie


 10.1 Session คืออะไร

          การที่เราเปิดโปรแกรมบราวเซอร์ขึ้นมา แล้วทำการร้องขอเอกสารไปยังเว็บเซิร์ฟเวอร์ หากแฟ้มเอกสารดังกล่าวเป็นแฟ้มเอกสารธรรมดาทั่วโลกไปแล้ว การทำงานก็ถือว่าเป็นธรรมดาปกติทั่วไป

         แต่หากว่าแฟ้มเอกสารดังกล่าวที่เราร้องขอไปยังเซิร์ฟเวอร์ มีการระบุโค้ดในการสั่ง Start Session ขึ้นมาแล้ว โปรแกรมบราวเซอร์ของเราจะได้รับหมายเลขประจำตัวที่ส่งมาจากเว็บเซิร์ฟเวอร์ขึ้นมาทันที โดยที่เราเรียกมันว่า Session ID ซึ่งถูกเข้ารหัสอยู่ในรูปแบบของ MDs (อักขระผสมตัวเลข) ทำให้ไคลเอนต์ทีร้องขอเข้ามาจะได้รับ Session ID ที่ไม่มีทางซ้ำกันได้
เมื่อไคลเอนต์แต่ละตัวได้รับ Session ID แล้ว เราก็สามารถอ้างอิงค่าของ Session ID ไปได้ยังทุกเว็บเพจ จนกว่าไคเอนต์ดังกล่าวได้อีกต่อไป

นอกจากว่า ไคลเอนต์จะทำการเปิดโปรแกรมบราวเซอร์ขึ้นมาใหม่ ก็จะส่งผลให้หน้าต่างของโปรแกรมบราวเซอร์ที่ถูกเปิดขึ้นมาใหม่นั้นได้รับ Session ID ใหม่นั่งเอง

10.2 ฟังก์ชันที่เกี่ยวข้องกับ Session
           Session  มีคุณสมบัติใช้ส่งค่าของตัวแปรที่สร้างจากไฟล์หนึ่งไปแสดงผลยังอีกไฟล์ได้ ทำให้เราสามารถทำการติดตามและตรวจสอบผู้ใช้ได้ ในการใช้งาน Session ภาษา PHP ได้จัดเตรียมฟังก์ชันให้ใช้งานอยู่หลายฟังก์ชัน ในที่นี้จะขอกล่าวถึงเฉาะบางฟังก์ชันที่จำเป็นเท่านั้น ดังนี้ 


·         session_start()
ใช้กำหนดให้ข้อมูลของ session เริ่มต้นทำงาน
·         session_register()
ใช้สำหรับลงทะเบียนให้กับตัวแปร ให้มีคุณสมบัติเป็นตัวแปร session
·         session_unregister()
ใช้สำหรับยกเลิกการลงมะเบียนของตัวแปร
·         session_destroy()
ใช้สำหรับทำลายข้อมูลทั้งหมดของ session


ฟังก์ชัน Session _register()

       ฟังก์ชันนี้ใช้สำหรับลงทะเบียนให้กับตัวแปรใดๆ ทำให้มีคุณสมบัติเป็นตัวแปร Session ซึ่งมีลักษณะเป็นตัวแปรประเภท global หรือตัวแปรสาธารณะ คือ สามารถเรียกใช้งานตัวแปรนี้ได้ทุกที่

คุกกี้ (Cookies) คืออะไร
       คุกกี้ คือข้อมูลที่เราส่งไปเก็บไว้ในเครื่องของผู้ใช้ เพื่อประโยชน์ในการตรวจสอบ และติดตามการทำงานของผู้ใช้ โดยบราวเซอร์จะทำการส่งข้อมูลของผู้ใช้ที่จัดเก็บไว้ในเครื่องมายังเซิร์ฟเวอร์ และจะนำ Cookie ดังกล่าวมาเก็บไว้ในตัวแปรทำให้สามารถตรวจสอบค่าต่างๆ ของผู้ใช้ได้

10.3 ฟังก์ชันที่เกี่ยวกับ Cookie
       ฟังก์ชันที่สำคัญในการจัดการ Cookie  มีดังนี้

Setcookie()
ใช้สำหรับสร้างและทำลายตัวแปร cookie
Ob_start() และ ob_end_flush()
เพื่อเปิดและปิดการใช้งานหน่วยความจำชั่วคราว

ฟังก์ชัน setcookie()







: โปรแกรม cookiemake.php สร้างตัวแปร cookie ขึ้นมา 2 ตัวแปร คือ $username และ $password  ให้มีอายุ 60 วินาที และมีลิงค์ไปยังโปรแกรม Showcookie.php
: โปรแกรม Showcookie.php แสดงผลของตัวแปร cookie ทั้ง 2 ตัวแปร
: โปรแกรม delcookie.php ทำลายตัวแปร cookie ทั้ง 2 ตัวแปร


10.4 การประยุกต์ Session และ Cookie ในโปรแกรม Log in
        ในหัวข้อนี้จะยกตัวอย่างการใช้ฟังก์ชัน Session และ Cookie ในโปรแกรม Log in
     


login.html












       ผลลัพธ์ของโปรแกรมข้างต้นถ้ากรอก username และ password ถูกต้องนี้ โปรแกรมจะเรียกไฟล์ adminform.html ซึ่งเปรียบเสมือนผู้ดูแลระบบ