Hướng dẫn dùng mean cookie trong PHP

Trong bài này, chúng ta sẽ tìm hiểu về cookie trong PHP. Để học tốt bài này, các bạn cần đọc lại bài Cài đặt môi trường lập trình Web PHP với XAMPP để biết cách chạy ứng dụng web PHP với XAMPP.

Cookie là một file nhỏ được server gửi đến và lưu trữ ở trình duyệt web (browser) trên máy tính của user. Khi có một request từ browser đến server, những cookie đã tồn tại trên browser cũng sẽ được gửi đến server.

Hướng dẫn dùng mean cookie trong PHP

Cookie thường được sử dụng để theo dõi, lưu lại hoạt động truy cập của user trên một website. Ví dụ, nhớ tên đăng nhập của user vào website. Việc đầu tiên, server gửi các cookie cho browser để lưu username. Browser trên máy tính của user sẽ lưu lại cookie này. Lần sau, user sử dụng browser và truy cập đến website thì cookie sẽ được gửi ngược đến server. Sau đó, server sẽ nhận được sookie và xác định được thông tin username.

Trong PHP, một cookie được tạo ra bằng cách sử dụng hàm setcookie(). Cú pháp:

setcookie(
    string $name,
    string $value = "",
    int $expires_or_options = 0,
    string $path = "",
    string $domain = "",
    bool $secure = false,
    bool $httponly = false
): bool

Trong đó,

$name là tên của cookie.

$value là giá trị của cookie được lưu trữ ở browser trên máy tính của user.

$expires_or_options là thời gian mà cookie tồn tại (còn được lưu trữ) trên browser.

$path là đường dẫn trên server mà cookie có sẵn. Thường đặt là ‘/’ thì cookie sẽ có sẵn trong toàn bộ tên miền của websitee.

$domain là tên miền hoặc tên miền phụ mà cookie có sẵn.

$secure: nếu được đặt là true thì cookie sẽ chỉ được gửi đến client với giao thức https.

$httponly: nếu được đặt là true thì cookie sẽ chỉ được gửi đến client với giao thức http.

Hàm setcookie() sẽ trả về true nếu cookie được tạo thành công, ngược lại trả về false.

Lưu ý: Hàm setcookie() tạo ra một cookie được gửi trong phần header của giao thức http. Cookie phải được gửi trước khi các html được load. Do đó, hàm setcookie() phải được gọi trước thẻ .



  
    Cookie in PHP
  

  Cookie '" . $cookie_name . "' is set!
"; echo "Value is: " . $_COOKIE[$cookie_name]; } ?>

Trong ví dụ trên, một cookie tên là ‘domainname’ được tạo và có giá trị là ‘gochocit.com’. Cookie này tồn tại 30 ngày trong browser ở máy tính của user. Các bạn có thể vào browser để xem các cookie được tạo ra.

Hướng dẫn dùng mean cookie trong PHP

2. Thay đổi và xóa cookie trong PHP

Để thay đổi giá trị của một cookie, chúng ta sử dụng lại hàm setcookie().



  
    Cookie in PHP
  

  Cookie '" . $cookie_name . "' is set!
"; echo "Value is: " . $_COOKIE[$cookie_name]; } ?>

Để xóa cookie, chúng ta sử dụng hàm setcookie() với thời gian tồn tại trong quá khứ (đã qua rồi).



  
    Cookie in PHP
  

  


3. Kiểm tra cookie có đang tồn tại không?

Những cookie được tạo ra và đang tồn tại thì sẽ được lưu trữ trong biến mảng $_COOKIE. Dữ liệu của biến mảng $_COOKIE có dạng như ví dụ sau:



  
    Cookie in PHP
  

  


Kết quả (chạy file index.php 2 lần)
array(2) { 
["domainname_en"]=> string(15) "en.gochocit.com" 
["domainname"]=> string(12) "gochocit.com" 
}

Có nhiều trường hợp, cookie có thể bị tắt (disabled). Để kiểm tra cookie có được bật (enabled) và có thể tạo cookie hay không, chúng ta đếm số phần tử trong biến mảng $_COOKIE.



  
    Cookie in PHP
  

   0) {
      echo "Cookies are enabled.";
    } else {
      echo "Cookies are disabled.";
    }
  ?>

Khi muốn kiểm tra một cookie có tồn tại hay không thì chúng ta sử dụng biến $_COOKIE để truy xuất đến cookie đó.



  
    Cookie in PHP
  

  

Trong ví dụ trên, hàm isset() giúp kiểm tra cookie có tên là “domainname” có tồn tại hay không? Các bạn có thể xem lại cách sử dụng hàm isset() ở bài Sử dụng hàm isset() trong PHP để kiểm tra một biến có tồn tại hay không?

  • C++ hỗ trợ đa kế thừa trong lập trình hướng đối tượng
  • Hàng đợi (queue) là gì? Cách xây dựng hàng đợi
  • Cú pháp của CSS
  • Hàm đệ quy trong lập trình và minh họa với C++
  • Collections framework và collection interface trong Java