Hàm setcookie() của PHP

Định nghĩa và cách sử dụng

Hàm setcookie() gửi một HTTP cookie đến client.

Cookie là biến được gửi từ máy chủ đến trình duyệt. Cookie thường là tệp văn bản nhỏ được máy chủ chèn vào máy tính của người dùng. Mỗi khi máy tính gửi yêu cầu trang thông qua trình duyệt, cookie này sẽ được gửi.

Tên của cookie được chỉ định bởi biến có cùng tên. Ví dụ, nếu cookie được gửi có tên "name", sẽ tự động tạo biến $user chứa giá trị của cookie.

Phải gán giá trị cho cookie trước khi gửi bất kỳ đầu ra nào khác.

Nếu thành công, hàm này sẽ trả về true, nếu không thì trả về false.

Ngữ pháp

setcookie(name,value,expire,path,domain,secure)
Tham số Mô tả
name Bắt buộc. Định nghĩa tên của cookie.
value Bắt buộc. Định nghĩa giá trị của cookie.
expire Tùy chọn. Định nghĩa thời gian hiệu lực của cookie.
path Tùy chọn. Định nghĩa đường dẫn máy chủ của cookie.
domain Tùy chọn. Định nghĩa tên miền của cookie.
secure Tùy chọn. Định nghĩa có gửi cookie qua kết nối HTTPS an toàn hay không.

Hướng dẫn và ghi chú

Ghi chú:Bạn có thể truy cập giá trị của cookie có tên "user" bằng $HTTP_COOKIE_VARS["user"] hoặc $_COOKIE["user"].

Ghi chú:Khi gửi cookie, giá trị của cookie sẽ tự động được mã hóa URL. Khi nhận sẽ được giải mã URL. Nếu bạn không cần như vậy, bạn có thể sử dụng setrawcookie() Thay thế.

Mô hình

Ví dụ 1

Cài đặt và gửi cookie:

<?php
$value = "my cookie value";
// Gửi một cookie đơn giản
setcookie("TestCookie",$value);
?>
<html>
<body>
...
...
<?php
$value = "my cookie value";
// Gửi một cookie hết hạn sau 24 giờ
setcookie("TestCookie",$value, time()+3600*24);
?>
<html>
<body>
...
...

Ví dụ 2

Tìm kiếm các phương pháp khác nhau để lấy giá trị cookie:

<html>
<body>
<?php
// 输出个别的 cookie
echo $_COOKIE["TestCookie"];
echo "<br />";
echo $HTTP_COOKIE_VARS["TestCookie"];
echo "<br />";
// Xuất ra tất cả cookie
print_r($_COOKIE);
?>
</body>
</html>

Kết quả xuất ra:

my cookie value
my cookie value
Array ([TestCookie] => my cookie value)

Ví dụ 3

// Bằng cách đặt ngày hết hạn thành ngày/giờ quá khứ, xóa một cookie:

<?php
// Đặt ngày hết hạn thành một giờ trước
setcookie ("TestCookie", "", time() - 3600);
?>
<html>
<body>
...
...

Ví dụ 4

Tạo một mảng cookie:

<?php
setcookie("cookie[three]","cookiethree");
setcookie("cookie[two]","cookietwo");
setcookie("cookie[one]","cookieone");
// Xuất ra cookie (sau khi tải lại trang)
if (isset($_COOKIE["cookie"]))
  {
  foreach ($_COOKIE["cookie"] as $name => $value)
    {
    echo "$name : $value <br />";
    }
  }
?>
<html>
<body>
...
...

Kết quả xuất ra:

three : cookiethree
two : cookietwo
one : cookieone