|
Cookie
คืออะไร ?
จะตอบอีกง่าย ๆ ก็คือ การเก็บค่าจาก Server
มาเก็บใว้ที่เครื่อง Client โดยเก็บใว้ในรูปไฟล์
พูดง่าย ๆ ก็คือ การเขียนลงไฟล์นั้นเอง
ทำความเข้าใจก่อนครับ
การ
Set Cookie จะต้อง Set ใว้ในส่วนบนสุดครับ
( header )
การสร้าง
Cookie
รูปแบบ
setcookie(cookie-name,value,[Time]);
หรือจะกำหนดจากตัวค่าตัวแปร
$va-name-value
= value";
setcookie(var-name, $var-name-value,[Time]
);
เมื่อ
Cookie-name ชื่อ ของ Cookie
value,$var-name-value คือ ค่าของ
Cookie
Time กำหนดเวลาหมดอายุของ Cookie
ตัวอย่าง
1
Setcookie("name","วีระชัย
นุกิจรัมย์",time()+3600); //
กำหนดเวลา 1 ชั่วโมง
ตัวอย่าง
2
$name="นายวีระชัย
นุกิจรัมย์";
Setcookie("name",$name,time()+60);
//
กำหนดเวลา 1 นาที
การอ่านค่าจาก
Cookie
$cookie-name
echo"$cookie-name";
การกำหนดวันหมดอายุของ Cookie
รูปแบบ
Time() , Date()
ตัวอย่าง
Setcookie("name",$name,time()+60);
//
กำหนดเวลา 1 นาที
การลบ
Cookie
รูปแบบ
SetCookie("Cookie-name")
เช่น
SetCookie("name")
// เป็นการลบ Cookie name ออก
หากยังไม่เข้าใจลองมาดูตัวอย่างกันหน่อยครับ
sample1.php
เป็นการกำหนดและตั้งค่า
Cookie
<?
$name="วีระชัย นุกิจรัมย์";
$old=21;
Setcookie("name",$name,time()+60);
Setcookie("old",$old,time()+60);
?>
ได้กำหนดค่าให้ Cookie แล้ว<br>
ตรวจสอบค่า Cookie <a href="Sample2.php">Sample2.php</a>
Out
put

sample2.php
เป็นการแสดงค่าใน Cookie
<?
echo "ค่าใน Cookie name คือ $name <br>";
echo "ค่าใน Cookie old คือ $old <br>";
?>
<br>
<br>
ตรวจสอบค่า Cookie อีกครั้ง <a href="Sample3.php">Sample3.php</a>
Out
put

sample3.php
เป็นการแสดงค่าใน
Cookie อีกครั้ง
<?
echo "ค่าใน Cookie Name จะยังเป็น $name
<br>";
echo "ค่าใน Cookie Old จะยังเป็น $old
<br>";
?>
<br>
ตั้งค่า Cookie <a href="Sample1.php">Sample1.php</a>
Out
put

เพิ่มเติมครับ
การใช้ ob_start();
เพื่อให้สามารถกำหนด Setcookie ใว้ส่วนใดก็ได้
ปกติการ
SetCookie เราต้องกำหนดใว้ส่วนบนสุด หรือ
headder แต่ถ้าเราใส่ ob_start(); จะสามารถกำหนดใว้ส่วนอื่น
ๆ ได้ เช่น การใช้คำสั่ง echo ใว้ก่อน SetCookie
ซึ่งถ้าไม่ใส่ ob_start(); จะไม่สามารถใช้คำสั่ง
echo ได้ ดังตัวอย่างต่อไปนี้ครับ
Sample1.php
<?
ob_start();
echo "ปกติจะไม่สามารถ แทรกส่วนตรงนี้ได้
<br>";
setcookie("name", "นายวีระชัย
นุกิจรัมย์", time() + 60);
echo "แต่ตอนนี้ได้กำหนดค่าให้ Cookie
name แล้ว ";
ob_end_flush();
?>
Out
Put

|