คุกกี้ PHP
คุกกี้คืออะไร?
คุกกี้มักใช้เพื่อระบุตัวผู้ใช้ คุกกี้คือไฟล์ขนาดเล็กที่เซิร์ฟเวอร์ฝังไว้ในคอมพิวเตอร์ของผู้ใช้ แต่ละครั้งที่คอมพิวเตอร์เครื่องเดียวกันร้องขอหน้าที่มีเบราว์เซอร์ มันก็จะส่งคุกกี้ไปด้วย ด้วย PHP คุณสามารถสร้างและดึงค่าคุกกี้ได้
สร้างคุกกี้ด้วย PHP
คุกกี้ถูกสร้างขึ้นด้วยsetcookie()
ฟังก์ชัน
ไวยากรณ์
setcookie(name, value, expire, path, domain, secure, httponly);
ต้องระบุพารามิเตอร์ชื่อเท่านั้น พารามิเตอร์อื่นๆ ทั้งหมดเป็นทางเลือก
PHP สร้าง/ดึงคุกกี้
ตัวอย่างต่อไปนี้สร้างคุกกี้ชื่อ "ผู้ใช้" โดยมีค่าเป็น "John Doe" คุกกี้จะหมดอายุหลังจาก 30 วัน (86400 * 30) "/" หมายความว่ามีคุกกี้อยู่ในเว็บไซต์ทั้งหมด (มิฉะนั้น เลือกไดเร็กทอรีที่คุณต้องการ)
จากนั้นเราดึงค่าของ "ผู้ใช้" ของคุกกี้ (โดยใช้ตัวแปรส่วนกลาง $_COOKIE) เรายังใช้isset()
ฟังก์ชันนี้เพื่อดูว่ามีการตั้งค่าคุกกี้หรือไม่:
ตัวอย่าง
<?php
$cookie_name = "user";
$cookie_value = "John Doe";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
?>
<html>
<body>
<?php
if(!isset($_COOKIE[$cookie_name])) {
echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
echo "Cookie '" . $cookie_name . "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>
หมายเหตุ:ฟังก์ชันsetcookie()
ต้องปรากฏก่อนแท็ก <html>
หมายเหตุ:ค่าของคุกกี้จะถูกเข้ารหัส URL โดยอัตโนมัติเมื่อส่งคุกกี้ และจะถูกถอดรหัสโดยอัตโนมัติเมื่อได้รับ (เพื่อป้องกันการเข้ารหัส URL ให้ใช้setrawcookie()
แทน)
แก้ไขค่าคุกกี้
หากต้องการแก้ไขคุกกี้ เพียงตั้งค่า (อีกครั้ง) คุกกี้โดยใช้setcookie()
ฟังก์ชัน:
ตัวอย่าง
<?php
$cookie_name = "user";
$cookie_value = "Alex Porter";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
?>
<html>
<body>
<?php
if(!isset($_COOKIE[$cookie_name])) {
echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
echo "Cookie '" . $cookie_name . "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>
ลบคุกกี้
หากต้องการลบคุกกี้ ให้ใช้setcookie()
ฟังก์ชันที่มีวันหมดอายุในอดีต:
ตัวอย่าง
<?php
// set the expiration date to one hour ago
setcookie("user", "", time() - 3600);
?>
<html>
<body>
<?php
echo "Cookie 'user' is deleted.";
?>
</body>
</html>
ตรวจสอบว่าเปิดใช้งานคุกกี้หรือไม่
ตัวอย่างต่อไปนี้สร้างสคริปต์ขนาดเล็กที่ตรวจสอบว่าเปิดใช้งานคุกกี้หรือไม่ ขั้นแรก ให้ลองสร้างคุกกี้ทดสอบด้วยsetcookie()
ฟังก์ชัน จากนั้นนับตัวแปรอาร์เรย์ $_COOKIE:
ตัวอย่าง
<?php
setcookie("test_cookie", "test", time() + 3600, '/');
?>
<html>
<body>
<?php
if(count($_COOKIE) > 0) {
echo "Cookies are enabled.";
} else {
echo "Cookies are disabled.";
}
?>
</body>
</html>
อ้างอิงเครือข่าย PHP ที่สมบูรณ์
สำหรับการอ้างอิงที่สมบูรณ์ของฟังก์ชันเครือข่าย ไปที่ PHP Network Referenceทั้งหมดของเรา