Hàm setrawcookie() trong PHP
Ví dụ
Ví dụ sau tạo cookie bằng PHP. Cookie được đặt tên là "người dùng" và giá trị sẽ là "John Doe". Giá trị cookie sẽ không được mã hóa URL. Cookie sẽ hết hạn sau 30 ngày (86400 * 30). Sử dụng "/", có nghĩa là cookie có sẵn trên toàn bộ trang web (nếu không, hãy chọn thư mục bạn thích):
<?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>
?>
Hãy tự mình thử »Định nghĩa và cách sử dụng
Hàm setrawcookie() xác định một cookie (không có mã hóa URL) sẽ được gửi cùng với phần còn lại của tiêu đề HTTP.
Cookie thường được sử dụng để nhận dạng người dùng. Cookie là một tệp nhỏ mà máy chủ nhúng vào máy tính của người dùng. Mỗi lần máy tính đó yêu cầu một trang bằng trình duyệt, nó cũng sẽ gửi cookie. Với PHP, bạn có thể vừa tạo vừa truy xuất các giá trị cookie.
Tên của cookie được tự động gán cho một biến có cùng tên. Ví dụ: nếu một cookie được gửi với tên "người dùng", một biến sẽ tự động được tạo có tên là $user, chứa giá trị cookie.
Lưu ý: Hàm setrawcookie() phải xuất hiện TRƯỚC thẻ <html>.
Lưu ý: Để tự động mã hóa URL giá trị cookie khi gửi và tự động giải mã khi nhận, hãy sử dụng hàm setcookie() thay thế.
Cú pháp
setrawcookie( name, value, expire, path, domain, secure );
Giá trị tham số
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. |
Chi tiết kỹ thuật
Giá trị trả về: | ĐÚNG khi thành công. FALSE khi thất bại |
---|---|
Phiên bản PHP: | 5+ |
Thêm ví dụ
Ví dụ
Truy xuất giá trị của cookie có tên "người dùng" (sử dụng biến toàn cục $_COOKIE). Đồng thời sử dụng hàm isset() để tìm hiểu xem cookie có tồn tại không:
<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>
Hãy tự mình thử »Ví dụ
Để sửa đổi cookie, chỉ cần đặt (lại) cookie bằng hàm 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>
Hãy tự mình thử »Ví dụ
Để xóa cookie, hãy sử dụng hàm setrawcookie() có ngày hết hạn trong quá khứ:
<?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>
Hãy tự mình thử »Ví dụ
Tạo một tập lệnh nhỏ để kiểm tra xem cookie có được bật hay không. Trước tiên, hãy thử tạo cookie thử nghiệm bằng hàm setrawcookie(), sau đó đếm biến mảng $_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>
Hãy tự mình thử »❮ Tham chiếu mạng PHP