Cookie cung cấp cho ứng dụng web một phương thức lưu trữ thông tin trên trình duyệt của người dùng và truy xuất khi người dùng gửi yêu cầu xem trang. Đây là công cụ để tạo chức năng ghi nhớ mật khẩu hoặc lưu trữ các mã theo dõi của hệ thống website với người dùng.

Cookie là gì?

  • Cookie được lưu trữ theo cặp thông tin key/value
  • Cookie được lưu ở trình duyệt người dùng và có thể truy xuất từ server khi người dùng truy cập trang
  • Thời gian sống của server được quy định tối đa ba năm
  • Cookie có tầm ảnh hưởng đến các vùng trên sever cho chúng ta quy định.

Thiết lập Cookie

Sử dụng hàm setcookie() để thiết lập cookie

setcookie($name, $value, $expire, $path, $domain)

Input

  • $name: Tên cookie
  • $value: Giá trị cookie (mặc định chuỗi rỗng)
  • $expire: Thời gian sống cookie, nếu được thiết lập 0 thì sau khi tắt trình duyệt cookie tự mất. Thời gian sống tối đa 3 năm
  • $path: Đường dẫn trên server mà cookie có hiệu lực. Nếu được thiết lập là / thì cookie có hiệu lực với tất cả các file trên server.
  • $domain: Tên miền cookie có hiệu lực

Ví dụ thiết lập cookie ghi nhớ thông tin đăng nhập

Sau khi người dùng chọn vào chức năng ghi nhớ đăng nhập chúng ta lưu username, và password lên trình duyệt để đánh dấu user đã đăng nhập với thời gian sống của nó là 86400 giây <=> 24 giờ.

<?php

if(!empty($_POST["remember_me"])) {
    setcookie ("username",$_POST["username"],time()+ 86400);
    setcookie ("password",$_POST["password"],time()+ 86400);
    echo "Đã ghi nhớ đăng nhập thành công";
} else {
    echo "Không ghi nhớ đăng nhập";
}

Lấy giá trị của Cookie

Sau khi thiết lập cookie được lưu vào biến hệ thống $_COOKIE, nó chính là dữ liệu kiểu mảng nên việc truy suất lấy giá trị như thao tác với mảng thông thường.

Đoạn code bên dưới giúp chúng ta lấy giá trị của biến username trong $_COOKIE.

<?php
$username = $_COOKIE['username '];
echo $username ;
?>

Hủy một biến trong Cookie

Để hủy một biến trong Cookie chúng ta chỉ cần thiết lập thời gian sống của nó trở về số âm. Sau khi hủy thì dữ liệu biến đó sẽ bị loại khỏi trên cookie trình duyệt của người dùng.

Đoạn code bên dưới giúp chúng ta hủy biến is_login trong Cookie. Bạn để ý time cần thiết lập số âm time() - 3600.

<?php
setcookie ("username",$_POST["username"],time() - 3600);
setcookie ("password",$_POST["password"],time() - 3600);
?>

Chú ý: Phần hủy Cookie thường được dùng trong trang đăng xuất (logout) người dùng trên hệ thống.

Tổng kết:

Cookie là một phần rất quan trọng, dữ liệu cúa nó được lưu cá nhân hóa trên từng trình duyệt của người dùng. Ngay bây giờ bạn nên ghi chép và thực hành lại để nắm chắc bài học.

Xin chào, sớm hẹn gặp lại!