Cookie PHP
Cookie là gì?
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ạo Cookie Với PHP
Một cookie được tạo bằng hàm setcookie()
.
Cú pháp
setcookie( name, value, expire, path, domain, secure, httponly );
Chỉ có tham số tên là bắt buộc. Tất cả các thông số khác là tùy chọn.
PHP Tạo/Truy xuất Cookie
Ví dụ sau tạo cookie có tên "người dùng" với giá trị "John Doe". Cookie sẽ hết hạn sau 30 ngày (86400 * 30). "/" 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).
Sau đó, chúng tôi truy xuất giá trị của "người dùng" cookie (sử dụng biến toàn cục $_COOKIE). Chúng tôi cũng sử dụng hàm isset()
để tìm hiểu xem cookie có được đặt hay không:
Ví dụ
<?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>
Lưu ý: Hàm setcookie()
phải xuất hiện TRƯỚC thẻ <html>.
Lưu ý: Giá trị của cookie được tự động mã hóa URL khi gửi cookie và tự động giải mã khi nhận được (để ngăn chặn mã hóa URL, thay vào đó hãy sử dụng setrawcookie()
).
Sửa đổi giá trị cookie
Để sửa đổi cookie, chỉ cần đặt (lại) cookie bằng hàm setcookie()
:
Ví dụ
<?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>
Xóa Cookie
Để xóa cookie, hãy sử dụng hàm setcookie()
có ngày hết hạn trong quá khứ:
Ví dụ
<?php
// set the expiration date to one hour ago
setcookie("user", "", time() - 3600);
?>
<html>
<body>
<?php
echo "Cookie 'user' is deleted.";
?>
</body>
</html>
Kiểm tra xem Cookie có được bật không
Ví dụ sau 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 setcookie()
, sau đó đếm biến mảng $_COOKIE:
Ví dụ
<?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>
Tham khảo mạng PHP hoàn chỉnh
Để có tài liệu tham khảo đầy đủ về các chức năng Mạng, hãy truy cập Tài liệu tham khảo Mạng PHP đầy đủ của chúng tôi.