PHP - $_COOKIE: Giới thiệu ngọt ngào về Tính bền vững trên Web

Xin chào các pháp sư PHP tương lai! Hôm nay, chúng ta sẽ nhảy vào thế giới ngọt ngào của cookies. Không, không phải loại cookies bạn nhúng vào sữa (dù tôi cũng không介意 có một chiếc ngay bây giờ). Chúng ta đang nói về cookies trên web, một khái niệm cơ bản trong phát triển web mà bạn sẽ sử dụng nhiều lần trong hành trình lập trình của mình.

PHP - $_COOKIE

Cookies là gì?

Hãy tưởng tượng bạn đang ghé thăm cửa hàng trực tuyến yêu thích của mình. Bạn thêm một vài món hàng vào giỏ, nhưng sau đó con mèo của bạn quyết định rằng đây là thời điểm hoàn hảo để đuôi, và bạn bị phân tâm. Khi bạn quay lại trang web sau này, có phải sẽ tốt nếu các món hàng trong giỏ của bạn vẫn còn đó? Đó là lúc cookies xuất hiện!

Cookies là một mảnh dữ liệu nhỏ mà một trang web lưu trữ trên máy tính của người dùng. Nó giống như một笔记 nhỏ mà trang web để lại để nhớ thông tin về bạn hoặc sở thích của bạn. Cookies giúp làm cho việc duyệt web trở nên cá nhân hóa và tiện lợi hơn.

Trong PHP, chúng ta sử dụng mảng toàn cục $_COOKIE để làm việc với cookies. Mảng này chứa tất cả các giá trị cookie mà trình duyệt gửi cho trang hiện tại.

Hàm setcookie()

Trước khi chúng ta bắt đầu tạo cookies kỹ thuật số, hãy cùng nhìn vào công cụ chính chúng ta sẽ sử dụng: hàm setcookie(). Hàm PHP này cho phép chúng ta tạo hoặc chỉnh sửa một cookie.

Dưới đây là cú pháp cơ bản:

setcookie(name, value, expire, path, domain, secure, httponly);

Hãy phân tích các tham số này:

Tham số Mô tả Bắt buộc?
name Tên của cookie
value Giá trị của cookie Không
expire Thời gian hết hạn của cookie (theo dấu phẩy động) Không
path Đường dẫn trên máy chủ mà cookie sẽ khả dụng Không
domain Tên miền mà cookie khả dụng Không
secure Chỉ ra nếu cookie chỉ nên truyền qua kết nối HTTPS an toàn Không
httponly Nếu đặt là TRUE, cookie chỉ có thể truy cập qua giao thức HTTP Không

Đừng lo lắng nếu điều này có vẻ quá tải. Chúng ta sẽ đi qua từng phần chi tiết hơn khi tiến hành.

Cách thiết lập Cookies

Bây giờ, hãy làm việc thực tế và thiết lập một số cookies! Nhớ rằng, thiết lập một cookie giống như để lại một note cho sau này. Dưới đây là một ví dụ đơn giản:

<?php
setcookie("user_name", "John Doe", time() + (86400 * 30), "/");
?>

Trong ví dụ này:

  • Chúng ta đang thiết lập một cookie có tên "user_name"
  • Giá trị của nó là "John Doe"
  • Nó sẽ hết hạn sau 30 ngày (86400 giây * 30)
  • Nó sẽ khả dụng trên toàn bộ website ("/")

Sau khi thiết lập cookie, bạn có thể truy cập nó bằng cách sử dụng mảng toàn cục $_COOKIE:

<?php
if(isset($_COOKIE['user_name'])) {
echo "Chào mừng quay lại, " . $_COOKIE['user_name'] . "!";
} else {
echo "Chào mừng bạn mới!";
}
?>

Mã này kiểm tra xem cookie 'user_name' có tồn tại hay không. Nếu có, nó chào mừng người dùng bằng tên. Nếu không, nó giả định rằng đó là người dùng mới.

Cách xóa Cookies

Đôi khi, bạn cần làm sạch cookie jar. Để xóa một cookie, bạn có thể đặt thời gian hết hạn của nó vào quá khứ:

<?php
setcookie("user_name", "", time() - 3600);
?>

Điều này đặt cookie "user_name" hết hạn một giờ trước, hiệu quả là xóa nó.

Thiết lập Cookies bằng cách sử dụng"Notation mảng"

Nếu bạn muốn lưu trữ dữ liệu phức tạp hơn trong cookies, PHP cho phép bạn sử dụng cách viết mảng khi thiết lập cookies. Điều này đặc biệt hữu ích khi bạn muốn nhóm các dữ liệu liên quan.

Dưới đây là một ví dụ:

<?php
setcookie("user[name]", "John Doe", time() + (86400 * 30), "/");
setcookie("user[email]", "[email protected]", time() + (86400 * 30), "/");
setcookie("user[preferences][theme]", "dark", time() + (86400 * 30), "/");
?>

Trong trường hợp này, chúng ta đang thiết lập nhiều cookie dưới tên "user". Để truy cập các giá trị này sau này:

<?php
if(isset($_COOKIE['user'])) {
echo "Tên: " . $_COOKIE['user']['name'] . "<br>";
echo "Email: " . $_COOKIE['user']['email'] . "<br>";
echo "Giao diện ưa thích: " . $_COOKIE['user']['preferences']['theme'];
}
?>

Phương pháp này cho phép bạn tổ chức dữ liệu cookie của bạn một cách có cấu trúc hơn.

Nhớ rằng, làm việc với cookies giống như để lại note cho chính bạn (hoặc khách truy cập trang web của bạn). Chúng vô cùng hữu ích cho việc duy trì trạng thái giữa các trang, nhớ sở thích người dùng, hoặc triển khai các tính năng như "Nhớ tôi" trên các biểu mẫu đăng nhập.

Khi bạn tiếp tục hành trình PHP của mình, bạn sẽ tìm thấy nhiều cách sử dụng cookies hơn nữa. Chúng là một công cụ cơ bản trong phát triển web, và việc thành thạo chúng sẽ làm bạn trở thành một nhà phát triển hiệu quả hơn.

Vậy, hãy tiến lên và nướng một số cookies ngọt ngào! (Và có lẽ lấy một chiếc cookies thật sự trong khi bạn làm việc - lập trình là công việc làm bạn đói!)

Credits: Image by storyset