Cách sử dụng cookie trong PHP

448

Bài viết được sự cho phép của tác giả Thầy Long Web

PHP và cookie nói về việc sử dụng các biến cookie với PHP: Tác dụng của cookie, Tạo biến cookie, lấy giá trị để dùng, xóa biến cookie…

Cookie là nơi lưu các giá trị trong trình duyệt. Các giá trị được lưu trong cookie có thể dùng chung giữa nhiều trang web trong website của bạn. Nghĩa là trong một trang web nào đó bạn lưu một giá trị vào cookie thì các trang web khác cũng có thể truy xuất được giá trị này.

Vùng Cookie nằm trong trình duyệt. Các giá trị được lưu vào cookie được gọi là biến cookie. Vùng Cookie  là nơi rất lý tưởng để lưu các giá trị mang lại tiện ích cho người xem web.

cookie-trong-php-1

Ví dụ một user nọ lần đầu vào trang của bạn. Bạn mời họ chọn ngôn ngữ để hiển thị, lần sau họ vào thì không hỏi nữa mà hiện đúng ngôn ngữ họ đã chọn trước đó. Do bạn đã lưu ngôn ngữ họ chọn vào cookie, giờ lấy ra dùng không hỏi gì nữa.

Cookie khác với session ở chỗ vị trí của nó là “ở client”. Nơi lưu trữ lâu dài các thông tin riêng của user trong quá trình sử dụng website.

Để tạo một biến cookie lưu trong trình duyệt thì dùng hàm setcookie. Tham số đầu tiên là tên biến, , tham số thứ hai là giá trị, tham số thứ ba là thời điểm mà biến cookie quá hạn. Nếu tham số thứ ba không có thì thời điểm quá hạn là khi user đóng tag trình duyệt. Ví dụ:

<?php
setcookie("tôngmàu", "xanh", time()+ 3600 ); //hết hạn sau 1 giờ
setcookie('username', 'teonv', time()+ 3600*24);//quá hạn sau 1 ngày
setcookie("đãlogin", 1); //hết hạn khi user đóng tab browser
?>

Sau khi response xong, biến cookie sẽ được tạo ra và lưu trong trình duyệt. Khi quá hạn trình duyệt sẽ tự động xóa biến cookie.

  Session, Cookie, Storage đơn giản mà dễ hiểu

  LocalStorage và Cookies - chọn cái nào để lưu JWT Tokens hiệu quả và an toàn?

Mảng $_COOKIE thứ quan trọng nhất cần biết trong chủ đề PHP và cookie. Vì mảng $_COOKIE là nơi chứa các biến cookie để bạn lấy ra dùng.

Lấy ra giá trị của 1 biến cookie , dùng cú pháp $_COOKIE[‘tên’];  Ví dụ:

<?php
  $un = $_COOKIE['username'];
  $mau = $_COOKIE['tôngmàu'];
  echo "$un  , $mau"; //teonv , xanh
?>

Nếu mể xóa 1 biến cookie trong trình duyệt dùng php thì Bạn dùng hàm setcookie nhưng chỉ định thời điểm quá hạn là số âm.  Ví dụ:

<?php
setcookie("username","",-1 ); //c3.php
?>

Tham khảo việc làm PHP lương cao tại TopDev

Muốn xem các biến cookie trong trình duyệt trình mở Developer Toolbox => vào tab Aplication => chọn mục Cookies bên cột trái => chọn domain website của bạn. Các biến cookie chưa hết hạn sẽ hiện hết ở đây. Và nếu muốn thì bạn có thể xóa hoặc chỉnh sửa giá trị của 1 biến cookue cũng được.

PHP và cookie

Mỗi lần user request lên server , trình duyệt sẽ gửi tất cả các biến cookie mà website bạn đã tạo lên server. Trên server, các biến cookie này được lưu vào mảng $_COOKIE , cho nên bạn mới có mà dùng.

Trình duyệt gửi cookie lên server

Các biến cookie có thể tồn tại trong trình duyệt 1 thời gian rất dài. Vài ngày vài tháng chẳng hạn. Khi các biến cookie quá hạn thì sao? Trình duyệt tự động xóa chúng. Bạn không cần phải lo.

Bài viết gốc được đăng tải tại longnv.name.vn

Xem thêm:

Xem thêm Việc làm IT hấp dẫn trên TopDev