Cookie trong PHP – Học lập trình PHP online – VietTuts

Cookie là gì?

Cookie thường được sử dụng để xác định người dùng. Cookie là một tệp nhỏ mà máy chủ nhúng trên máy tính của người dùng. Mỗi lần cùng một máy tính yêu cầu một trang với một trình duyệt, nó cũng sẽ gửi cookie tới server. Bạn có thể tạo và truy xuất các giá trị cookie trong PHP.

Tạo cookie trong PHP

Hàm setcookie() được sử dụng để tạo cookie:

Cú pháp:

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

Chỉ có tham số name là bắt buộc. Tất cả các thông số khác là tùy chọn.

Tạo và đọc cookie trong PHP

Ví dụ sau tạo cookie có tên “user” với giá trị “David Vinh”. Cookie sẽ hết hạn sau 30 ngày (86400 * 30). “/” Có nghĩa là cookie có sẵn trong toàn bộ trang web (nếu không, hãy chọn thư mục bạn thích).

Sau đó, chúng ta đọc giá trị của cookie “user” (sử dụng biến toàn cầu $_COOKIE). Chúng ta cũng sử dụng hàm isset() để kiểm tra xem cookie đã được tạo chưa:

File: cookie-trong-php-1.php

<!DOCTYPE html>
<?php
$cookie_name = "user";
$cookie_value = "David Vinh";
// 86400 = 1 day
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
?>
<html>
<body>

<?php
if(!isset($_COOKIE[$cookie_name])) {
     echo "Cookie có tên '" . $cookie_name . "' chưa được tạo!";
} else {
     echo "Cookie '" . $cookie_name . "' đã được tạo!<br>";
     echo "Giá trị là: " . $_COOKIE[$cookie_name];
}
?>

<p><strong>Chú ý:</strong> Có thể bạn phải tại lại trang web này 
để tạo cookie và đọc cookie.</p>

</body>
</html>

Kết quả:

Cookie 'user' đã được tạo!
Giá trị là: David Tèo
Chú ý: Có thể bạn phải tại lại trang web này để tạo cookie và đọc cookie.

Chú ý: Hàm setcookie() phải đặt TRƯỚC thẻ <html>.

Xem kết quả ở tab mới.

Sửa đổi giá trị cookie trong PHP

Để sửa đổi một cookie, chỉ cần thiết lập (một lần nữa) cookie bằng cách sử dụng hàm setcookie():

File: cookie-trong-php-2.php

<!DOCTYPE html>
<?php
$cookie_name = "user";
$cookie_value = "David Tèo";
// 86400 = 1 day
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
?>
<html>
<body>

<?php
if(!isset($_COOKIE[$cookie_name])) {
     echo "Cookie có tên '" . $cookie_name . "' chưa được tạo!";
} else {
     echo "Cookie '" . $cookie_name . "' đã được tạo!<br>";
     echo "Giá trị là: " . $_COOKIE[$cookie_name];
}
?>

</body>
</html>

Kết quả:

Cookie 'user' đã được tạo!
Giá trị là: David Tèo

Xem kết quả ở tab mới.

Xóa cookie trong PHP

Để xóa cookie, hãy sử dụng hàm setcookie() với ngày hết hạn trong quá khứ:

File: cookie-trong-php-3.php

<?php
// thiết lập thời gian hết hạn là 1h trước
setcookie("user", "", time() -3600);
?>
<html>
<body>

<?php
echo "Cookie 'user' đã bị xóa.";
?>

</body>
</html>

Kết quả:

Cookie 'user' đã bị xóa.

Xem kết quả ở tab mới.

Kiểm tra xem Cookies có được bật hay không

Ví dụ sau kiểm tra xem cookie có được bật hay không. Trước tiên, hãy thử tạo một cookie bằng hàm setcookie() trong PHP, sau đó đếm số phần tử của mảng mảng $_COOKIE:

File: cookie-trong-php-4.php

<?php
setcookie("test_cookie", "test", time() + 3600, '/');
?>
<html>
<body>

<?php
if(count($_COOKIE) > 0) {
    echo "Cookies đang được bật.";
} else {
    echo "Cookies đang bị tắt.";
}
?>

</body>
</html>

Kết quả:

Cookies đang được bật.

Xem kết quả ở tab mới.