คุกกี้เป็นตัวแปรประเภทหนึ่ง ซึ่งมีคุณสมบัติพิเศษในการดำรงค่าไว้ในเครื่องคอมพิวเตอร์ของผู้ใช้ เพื่อแลกเปลี่ยนข้อมูลข้ามสคริปต์กันได้
ตัวแปรคุกกี้สามารถกำหนดอายุได้ คือ
ตัวแปรคุกกี้ถูกประกาศขึ้นมาในสคริปต์ใดๆ กำหนดให้มีอายุ 1 ชั่วโมง แม้ว่าสคริปต์ที่สร้างตัวแปรคุกกี้จะสิ้นสุดการทำงาน แต่หากยังไม่ครบกำหนดเวลา ตัวแปรคุกกี้ก็ยังคงสถานะอยู่ ไม่ถูกทำลาย
ตัวแปรโดยทั่วไปเมื่อประกาศภายในสคริปต์แล้วจะใช้งานได้เฉพาะภายในสคริปต์กำลังทำงานเท่านั้น เมื่อสคริปต์สิ้นสุดการทำงานแล้ว ตัวแปรก็จะถูกทำลายไป
โครงสร้างของคุกกี้
– ตัวแปรคุกกี้และข้อมูลที่เก็บอยู่ในตัวแปรคุกกี้ ถูกบันทึกเป็นไฟล์คุกกี้อยู่ในเครื่องทางฝั่งผู้ใช้หรือฝั่งไคลเอนต์ ทำให้ตัวแปรคุกกี้สามารถคงอยู่ได้ในระยะเวลาที่กำหนด
– ถ้าตัวแปรคุกกี้ไม่หมดอายุ ตลอดระยะเวลาเราก็สามารถเรียกใช้ค่าของตัวแปรคุกกี้ได้เสมอ
ตัวแปรโดยทั่วไปจะถูกเก็บอยู่ในหน่วยความจำเท่านั้น
ไฟล์คุกกี้
•ไฟล์คุกกี้จะมีลักษณะเป็นไฟล์ข้อความ (text file) จึงมีนามสกุลเป็น “.txt”
•มีขนาดไม่เกิน 4,096 ไบต์ (4 KB)
•เวบต์ไซต์หนึ่งๆ สามารถสร้างไฟล์คุกกี้ไว้ที่ฝั่งไคลเอนต์ได้ไม่เกิน 20 ไฟล์
•และเครื่องฝั่งไคลเอนต์สามารถเก็บไฟล์คุกกี้จากทุกเว็บไซต์รวมกันได้ไม่เกิน 300 ไฟล์
ประโยชน์ของคุกกี้
เวบต์ไซต์ประเภท e-commerce นิยมใช้คุกกี้เก็บข้อมูลส่วนตัวและพฤติกรรมของผู้ที่เข้าชมหรือลูกค้า เช่น
–ข้อมูลประเภทการเข้าชม ความสนใจ การสั่งซื้อ
–ข้อมูลส่วนตัวของผู้ใช้ ถ้าเคยกรอกแบบฟอร์มมาก่อน ที่สามารถขึ้นมาได้โดยอัตโนมัติ เพื่อให้ลูกค้าได้ประทับใจ
–สามารถตรวจสอบการลงคะแนนของผู้ใช้ เพื่อจำกัดจำนวนครั้งของการเข้าโหวตในช่วงเวลาที่กำหนด
ประโยชน์จากที่กล่าวมา ก็ยังเป็นเหมือนดาบสองคม ที่มีการถกเถียงกันอย่างมาเกี่ยวกับเรื่องการละเมิดสิทธิส่วนบุคคล
–เรื่องการใช้พื้นที่ฮาร์ดดิสก์ของผู้เข้าชมเวบต์โดยมิได้บอกล่วงหน้า
–การตรวจสอบการใช้งานของผู้เข้าชมด้วยข้อมูลของเครื่อง
–การเข้าตรวจสอบสเปกของซอฟต์แวร์และฮาร์ดแวร์ในเครื่อง
ฟังก์ชัน time()
ใช้สำหรับดูเวลาปัจจุบันจากเครื่องเซิร์ฟเวอร์ ซึ่งให้ค่าตัวเลขจำนวนวินาที โดยเริ่มนับตั้งแต่วันที่ 1 มกราคม ค.ศ. 1970
<?
print “<b>From Jan 1,1970 to Now spent time :</b>”;
print time();
print “second”;
?>
การประกาศตัวแปรคุกกี้
ภาษา PHP ได้เตรียมฟังก์ชันสำหรับประกาศตัวแปรคุกกี้ไว้แล้ว
setcookie(name [, value[, expire]])
name เป็นชื่อของตัวแปรคุกกี้
value เป็นข้อมูลที่เก็บในตัวแปรคุกกี้ จะถูกแปลงเป็น string ก่อนเก็บ
expire เป็นตัวเลข กำหนดเวลาหรืออายุของตัวแปรคุกกี้ มีหน่วยเป็นวินาที
ค่าที่ได้จากฟังก์ชัน setcookie() เป็น boolean
ถ้าเป็น true คือสร้างคุกกี้ได้สำเร็จ
ถ้าเป็น false คือสร้างคุกกี้ได้ไม่สำเร็จ
การเรียกใช้คุกกี้
ให้เรียกจาก PHP variable (ใช้ได้กับทุกเวอร์ชั่น)
$HTTP_COOKIE_VARS[“cookie_name”]
ตัวอย่าง
<?
setcookie(“TestCookie”,”FirstValue”,time()+60);
print $HTTP_COOKIE_VARS[“TestCookie”];
?>
การเรียกใช้คุกกี้
ใช้กับเวอร์ชั่นต่ำกว่า 4.1.0
$cookie_name
print $TestCookie
ใช้กับเวอร์ชั่น 4.1.0 ขึ้นไป
$_COOKIE[“cookie_name”]
print $_COOKIE[TestCookie]
คุกกี้อยู่ไหน
ตำแหน่งที่เก็บไฟล์คุกกี้ จะขึ้นอยู่กับโปรแกรมเบราเซอร์ •ถ้าเป็น Window XP ใช้งาน IE ก็จะพบที่ C:\Documents and Settings\username\Cookies
ชื่อไฟล์จะใช้รูปแบบ username@hostname[#].txt
กฎของ PHP กับ Cookie
การประกาศตัวแปรคุกกี้ด้วยฟังก์ชัน setcookie() จะต้องประกาศไว้ก่อนส่วนเฮดเดอร์ของ HTML
เมื่อประกาศออกมาแล้ว ตัวแปรคุกกี้จะมีอายุตามที่กำหนดไว้
และจะยังไม่สามารถใช้งานในสคริปต์ได้ในครั้งแรก จะสามารถใช้งานตัวแปรคุกกี้ได้เมื่อทำการรันสคริปต์ครั้งถัดไป