Nội dung chính
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.
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
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.
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.