ตัวอย่าง
ตัวอย่างต่อไปนี้สร้างคุกกี้ที่มีชื่อว่า "user" มีค่า "John Doe" คุกกี้จะหมดอายุหลังจาก 30 วัน (86400 * 30) "/" หมายความว่าคุกกี้ที่มีอยู่ในเว็บไซต์ทั้งหมด (otherwise, select the directory you prefer)
จากนั้นเราจะเรียกค่าของคุกกี้ "user" (โดยใช้ตัวแปรทั่วโลก $ _COOKIE) นอกจากนี้เรายังใช้ isset() ฟังก์ชั่นเพื่อดูว่าคุกกี้จะถูกตั้ง:
<!DOCTYPE html>
<?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() ฟังก์ชั่นกำหนดคุกกี้จะถูกส่งไปพร้อมกับส่วนที่เหลือของส่วนหัว HTTP ที่
คุกกี้มักจะถูกนำมาใช้เพื่อระบุผู้ใช้ คุกกี้เป็นไฟล์ขนาดเล็กว่าเซิร์ฟเวอร์ฝังในเครื่องคอมพิวเตอร์ของผู้ใช้ แต่ละครั้งที่คอมพิวเตอร์เครื่องเดียวกันร้องขอหน้าเว็บเบราว์เซอร์จะส่งคุกกี้เกินไป ด้วย PHP คุณทั้งสองสามารถสร้างและเรียกค่าคุกกี้
ชื่อของคุกกี้จะถูกกำหนดให้กับตัวแปรที่มีชื่อเดียวกันโดยอัตโนมัติ ตัวอย่างเช่นถ้าคุกกี้ถูกส่งตัวที่มีชื่อ "user" ตัวแปรโดยอัตโนมัติสร้างขึ้นเรียกใช้ $ มีค่าคุกกี้
Note: setcookie() ฟังก์ชั่นจะต้องปรากฏก่อน <html> แท็ก
Note: ค่าของคุกกี้ที่มี urlencoded โดยอัตโนมัติเมื่อมีการส่งคุกกี้และถอดรหัสเมื่อได้รับโดยอัตโนมัติ (เพื่อป้องกันการ URLEncoding ใช้ setrawcookie() แทน)
วากยสัมพันธ์
setcookie( name,value,expire,path,domain,secure,httponly );
พารามิเตอร์ | ลักษณะ |
---|---|
name | จำเป็นต้องใช้ ระบุชื่อของคุกกี้ |
value | ไม่จำเป็น. ระบุค่าของคุกกี้ |
expire | ไม่จำเป็น. ระบุเมื่อคุกกี้หมดอายุ มูลค่า: time() + 86400 * 30 จะตั้งค่าคุกกี้จะหมดอายุใน 30 วัน ถ้าพารามิเตอร์นี้จะถูกละเว้นหรือตั้งค่าเป็น 0, คุกกี้จะหมดอายุในสิ้นเซสชั่น (when the browser closes) เริ่มต้นเป็น 0 |
path | ไม่จำเป็น. ระบุเส้นทางเซิร์ฟเวอร์ของคุกกี้ หากการตั้งค่า "/" คุกกี้จะสามารถใช้ได้ภายในทั้งโดเมน หากการตั้งค่า "/php/" คุกกี้เท่านั้นที่จะสามารถใช้ได้ภายในไดเรกทอรี PHP และทุกไดเรกทอรีย่อยของ PHP ค่าเริ่มต้นคือไดเรกทอรีปัจจุบันว่าคุกกี้จะถูกตั้งอยู่ใน |
domain | ไม่จำเป็น. ระบุชื่อโดเมนของคุกกี้ ที่จะทำให้คุกกี้ที่มีอยู่บนโดเมนย่อยทั้งหมดของ example.com ตั้งโดเมน "example.com" การตั้งค่าให้ www.example.com จะทำให้คุกกี้ใช้ได้เฉพาะในโดเมนย่อย www |
secure | ไม่จำเป็น. ระบุหรือไม่ว่าคุกกี้ควรจะส่งผ่านการเชื่อมต่อ HTTPS ที่ปลอดภัย TRUE บ่งชี้ว่าคุกกี้จะได้รับการตั้งค่าถ้าเชื่อมต่อที่ปลอดภัยที่มีอยู่ เริ่มต้นเป็นเท็จ |
httponly | ไม่จำเป็น. ถ้าตั้งค่าเป็น TRUE คุกกี้จะสามารถเข้าถึงได้เฉพาะผ่านโปรโตคอล HTTP (the cookie will not be accessible by scripting languages) การตั้งค่านี้สามารถช่วยลดการโจรกรรมผ่านโจมตี XSS เริ่มต้นเป็นเท็จ |
รายละเอียดทางเทคนิค
กลับค่า: | TRUE ในความสำเร็จ FALSE กับความล้มเหลว |
---|---|
PHP เวอร์ชัน: | 4+ |
PHP การเปลี่ยนแปลง: | PHP 5.5 - แอตทริบิวต์ Max-อายุถูกรวมอยู่ในส่วนหัวของคุกกี้ชุดส่งไปยังลูกค้า PHP 5.2 - พารามิเตอร์ HTTPOnly ถูกเพิ่มเข้ามา |
ตัวอย่างอื่น ๆ
ตัวอย่าง
หลายวันหมดอายุสำหรับคุกกี้:
<?php
$value = "Hello world!";
// cookie will expire when the
browser close
setcookie("myCookie", $value);
// cookie will expire
in 1 hour
setcookie("myCookie", $value, time() + 3600);
// cookie
will expire in 1 hour, and will only be available
// within the php
directory + all sub-directories of php
setcookie("myCookie", $value,
time() + 3600, "/php/");
?>
<html>
<body>
...some code...
</body>
</html>
ตัวอย่างเช่นเรียกใช้» ตัวอย่าง
หากต้องการแก้ไขคุกกี้เพิ่งตั้ง (again) คุกกี้โดยใช้ 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>
ตัวอย่างเช่นเรียกใช้» ตัวอย่าง
สร้างสคริปต์ขนาดเล็กที่จะตรวจสอบว่า cookies จะเปิดใช้งาน ครั้งแรกที่พยายามที่จะสร้างคุกกี้ทดสอบกับ 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 HTTP อ้างอิง