การใช้งาน Cookie Object ของ PHP
 

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




 


Hosted by www.Geocities.ws

1