Cookie là một khái niệm quan trọng trong lập trình web, cung cấp cách để lưu trữ thông tin trên trình duyệt của người dùng. Trong PHP, cookie được sử dụng để duy trì trạng thái và lưu trữ thông tin như các tùy chọn đăng nhập, ngôn ngữ được chọn, và các tùy chỉnh cá nhân khác. Bằng cách sử dụng cookies, các ứng dụng web có thể cung cấp trải nghiệm cá nhân hóa cho người dùng và lưu trữ thông tin trạng thái giữa các yêu cầu trang web. Hãy cùng Vietnix tìm hiểu thêm về chủ đề Cookie trong PHP qua bài viết sau đây.
File cookie là gì?
Cookie trong PHP là một đoạn dữ liệu nhỏ được web server gửi đến và lưu trữ trên máy tính của người dùng (client). Chúng có thể được sử dụng để theo dõi thông tin như tùy chọn, giỏ hàng, và trong một số trường hợp, thông tin tài khoản người dùng. Điều này giúp trang web cá nhân hóa trải nghiệm cho người dùng khi họ quay lại.
Cookie chỉ có thể được đọc từ tên miền mà nó đã được phát hành từ đó. Cookies cũng thường được đặt trong HTTP header nhưng Javascript cũng có thể đặt trực tiếp trong trình duyệt.
Cookie thường được sử dụng để theo dõi các hoạt động của người dùng, nhưng cũng cần phải được sử dụng một cách cẩn thận để đảm bảo quyền riêng tư và bảo mật của người dùng. Bên cạnh đó, trong PHP, các hàm và cú pháp được cung cấp để quản lý và tương tác với cookies, giúp các nhà phát triển xây dựng ứng dụng web mạnh mẽ và đáng tin cậy.
Cài đặt Cookie trong PHP | Để cài đặt, bạn dùng hàm setcookie() . Hàm này cần phải gọi lên trước bất kỳ output nào được tạo ra từ file script nếu không cookie sẽ không thể thiết lập. |
Cú pháp | setcookie(name, value, expire, path, domain, security); |
Tham số | 1. Name: chỉ định tên cho cookie. 2. Value: dùng để đặt giá trị cho cookie. 3. Expire: dùng để đặt mốc thời gian hết hạn của cookie vá sau đó cookie sẽ không thể truy cập. 4. Path: dùng để chỉ định đường dẫn trên server mà cookie khả dụng. 5. Domain: chỉ định tên miền mà cookie khả dụng. 6. Security: chỉ định cookie chỉ có thể gửi đi nếu có kết nối HTTPS an toàn. |
Mọi người cũng xem:
Các thao tác cơ bản với Cookie trong PHP
Khởi tạo cookie
Giả định khởi tạo một cookie tên là Auction_Item and gán giá trị Luxury Car cho chúng. Gia hạn 2 ngày hiệu lực cho cookie (2 days * 24 hours * 60 mins * 60 seconds).
Bạn sẽ có mẫu ví dụ như sau:
<!DOCTYPE html>
<?php
setcookie("Auction_Item", "Luxury Car", time() + 2 * 24 * 60 * 60);
?>
<html>
<body>
<?php
echo "cookie is created."
?>
<p>
<strong>Note:</strong>
You might have to reload the
page to see the value of the cookie.
</p>
</body>
</html>
Output nhận được là:
Kiểm tra cookie thiết lập hay chưa
Lời khuyên là bạn phải luôn kiểm tra điều này trước khi truy cập giá trị của cookie. Để kiểm tra thì cần dùng hàm isset()
trong PHP. Ví dụ bạn sẽ kiểm tra cookie tên Auction_Item ban đầu khởi tạo bằng hàm isset()
theo đoạn code sau:
<!DOCTYPE html>
<?php
setcookie("Auction_Item", "Luxury Car", time() + 2 * 24 * 60 * 60);
?>
<html>
<body>
<?php
if (isset($_COOKIE["Auction_Item"]))
{
echo "Auction Item is a " . $_COOKIE["Auction_Item"];
}
else
{
echo "No items for auction.";
}
?>
<p>
<strong>Note:</strong>
You might have to reload the page
to see the value of the cookie.
</p>
</body>
</html>
Output lúc này sẽ như sau:
Truy cập giá trị của cookie
Để truy cập vào giá trị cả cookie, bạn cần dùng biến superglobal $_COOKIE. Đó là một array chứa bản record mọi giá trị cookie được gửi đi bởi trình duyệt trong các request gần đây. Bản record này sẽ lưu trữ thành danh sách mà trong đó tên coockie sử dụng làm key. Ví dụ bạn muốn truy cập cookie tên Auction_Item, bạn sẽ viết đoạn code như sau:
<!DOCTYPE html>
<?php
setcookie("Auction_Item", "Luxury Car", time() + 2 * 24 * 60 * 60);
?>
<html>
<body>
<?php
echo "Auction Item is a " . $_COOKIE["Auction_Item"];
?>
<p>
<strong>Note:</strong>
You might have to reload the page
to see the value of the cookie.
</p>
</body>
</html>
Output như sau:
Xóa cookie
Để xóa cookie, người dùng sẽ chọn hàm setcookie()
, được gọi bằng cách truyền tên cookie và các đối số khác hay chuỗi trống vào hàm. Tuy nhiên trong ví dụ sau, để xóa cookie thì người dùng sẽ đặt thời gian hết hạn lùi ngược về trước.
<!DOCTYPE html>
<?php
setcookie("Auction_Item", "Luxury Car", time() + 2 * 24 * 60 * 60);
?>
<html>
<body>
<?php
setcookie("Auction_Item", "", time() - 60);
?>
<?php
echo "cookie is deleted"
?>
<p>
<strong>Note:</strong>
You might have to reload the page
to see the value of the cookie.
</p>
</body>
</html>
Khi này output sẽ như sau:
Lời kết
Vietnix hy vọng nội dung bài viết trên đã giúp bạn hiểu rõ hơn về Cookies trong PHP. Ngoài ra, bạn cũng có thể tham khảo thêm các bài viết khác tại vietnix.vn để hiểu hơn về lập trình, chúc bạn thành công!