PHP setrawcookie()ฟังก์ชั่น
ตัวอย่าง
ตัวอย่างต่อไปนี้สร้างคุกกี้ด้วย PHP คุกกี้ชื่อ "ผู้ใช้" และค่าจะเป็น "John Doe" ค่าคุกกี้จะไม่ถูกเข้ารหัส URL คุกกี้จะหมดอายุหลังจาก 30 วัน (86400 * 30) การใช้ "/" หมายความว่ามีคุกกี้อยู่ในเว็บไซต์ทั้งหมด (มิฉะนั้น ให้เลือกไดเรกทอรีที่คุณต้องการ):
<?php
$cookie_name = "user";
$cookie_value = "John";
setrawcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
// 86400 = 1 day
?>
<html>
<body>
<?php
echo "Cookie is set.";
?>
</body>
</html>
?>
ความหมายและการใช้งาน
ฟังก์ชัน setrawcookie() กำหนดคุกกี้ (ไม่มีการเข้ารหัส URL) ที่จะส่งไปพร้อมกับส่วนหัว HTTP ที่เหลือ
คุกกี้มักใช้เพื่อระบุตัวผู้ใช้ คุกกี้คือไฟล์ขนาดเล็กที่เซิร์ฟเวอร์ฝังไว้ในคอมพิวเตอร์ของผู้ใช้ แต่ละครั้งที่คอมพิวเตอร์เครื่องเดียวกันร้องขอหน้าที่มีเบราว์เซอร์ มันก็จะส่งคุกกี้ไปด้วย ด้วย PHP คุณสามารถสร้างและดึงค่าคุกกี้ได้
ชื่อของคุกกี้ถูกกำหนดโดยอัตโนมัติให้กับตัวแปรที่มีชื่อเดียวกัน ตัวอย่างเช่น หากส่งคุกกี้ในชื่อ "ผู้ใช้" ตัวแปรจะถูกสร้างขึ้นโดยอัตโนมัติเรียกว่า $user โดยมีค่าคุกกี้
หมายเหตุ:ฟังก์ชัน setrawcookie() จะต้องปรากฏก่อนแท็ก <html>
หมายเหตุ:ในการเข้ารหัส URL ค่าคุกกี้โดยอัตโนมัติเมื่อส่ง และถอดรหัสโดยอัตโนมัติเมื่อได้รับ ให้ใช้ ฟังก์ชัน setcookie()แทน
ไวยากรณ์
setrawcookie(name, value, expire, path, domain, secure);
ค่าพารามิเตอร์
Parameter | Description |
---|---|
name | Required. Specifies the name of the cookie |
value | Optional. Specifies the value of the cookie |
expire | Optional. Specifies when the cookie expires. The value: time()+86400*30, will set the cookie to expire in 30 days. If this parameter is not set, the cookie will expire at the end of the session (when the browser closes) |
path | Optional. Specifies the server path of the cookie. If set to "/", the cookie will be available within the entire domain. If set to "/php/", the cookie will only be available within the php directory and all sub-directories of php. The default value is the current directory that the cookie is being set in |
domain | Optional. Specifies the domain name of the cookie. To make the cookie available on all subdomains of example.com, set domain to ".example.com". Setting it to www.example.com will make the cookie only available in the www subdomain |
secure | Optional. Specifies whether or not the cookie should only be transmitted over a secure HTTPS connection. TRUE indicates that the cookie will only be set if a secure connection exists. Default is FALSE. |
รายละเอียดทางเทคนิค
คืนมูลค่า: | จริงกับความสำเร็จ FALSE เมื่อล้มเหลว |
---|---|
รุ่น PHP: | 5+ |
ตัวอย่างเพิ่มเติม
ตัวอย่าง
ดึงค่าของคุกกี้ชื่อ "ผู้ใช้" (โดยใช้ตัวแปรส่วนกลาง $_COOKIE) ใช้ฟังก์ชัน isset() เพื่อดูว่ามีคุกกี้อยู่หรือไม่:
<html>
<body>
<?php
$cookie_name = "user";
if(!isset($_COOKIE[$cookie_name])) {
echo "Cookie named '" . $cookie_name . "' does not exist!";
} else {
echo "Cookie is named: " . $cookie_name . "<br>Value is: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>
ตัวอย่าง
หากต้องการแก้ไขคุกกี้ เพียงตั้งค่า (อีกครั้ง) คุกกี้โดยใช้ฟังก์ชัน setrawcookie():
<?php
$cookie_name = "user";
$cookie_value = "Alex";
setrawcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
?>
<html>
<body>
<?php
$cookie_name = "user";
if(!isset($_COOKIE[$cookie_name])) {
echo "Cookie named '" . $cookie_name . "' does not exist!";
} else {
echo "Cookie is named: " . $cookie_name . "<br>Value is: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>
ตัวอย่าง
หากต้องการลบคุกกี้ ให้ใช้ฟังก์ชัน setrawcookie() โดยมีวันหมดอายุในอดีต:
<?php
$cookie_name = "user";
unset($_COOKIE[$cookie_name]);
// empty value and expiration one hour before
$res = setrawcookie($cookie_name, '', time() - 3600);
?>
<html>
<body>
<?php
echo "Cookie 'user' is deleted.";
?>
</body>
</html>
ตัวอย่าง
สร้างสคริปต์ขนาดเล็กที่ตรวจสอบว่าเปิดใช้งานคุกกี้หรือไม่ ขั้นแรก ให้ลองสร้างคุกกี้ทดสอบด้วยฟังก์ชัน setrawcookie() จากนั้นให้นับตัวแปรอาร์เรย์ $_COOKIE:
<?php
setrawcookie("test_cookie", "test", time() + 3600, '/');
?>
<html>
<body>
<?php
if(count($_COOKIE) > 0) {
echo "Cookies are enabled";
} else {
echo "Cookies are disabled";
}
?>
</body>
</html>
❮ การอ้างอิงเครือข่าย PHP