Cookie trong PHP
Cookie là các text file lưu giữ trên Client và chúng được giữ với mục đích là theo dõi. PHP hỗ trợ các HTTP Cookie. Có 3 bước để xác định người dùng trả về: Chương này sẽ chỉ bạn cách thiết lập Cookie, cách truy cập vào chúng và cách xóa chúng. Cấu trúc của một Cookie Cookie thường ...
Cookie là các text file lưu giữ trên Client và chúng được giữ với mục đích là theo dõi. PHP hỗ trợ các HTTP Cookie.
Có 3 bước để xác định người dùng trả về:
Chương này sẽ chỉ bạn cách thiết lập Cookie, cách truy cập vào chúng và cách xóa chúng.
Cấu trúc của một Cookie
Cookie thường được thiết lập trong một HTTP header (mặc dù JavaScript cũng có thể thiết lập một Cookie trực tiếp trên một trình duyệt). Một PHP script thiết lập một Cookie có thể gửi các header trông giống như sau:
HTTP/1.1 200 OK Date: Fri, 04 Feb 2000 21:03:38 GMT Server: Apache/1.3.9 (UNIX) PHP/4.0b3 Set-Cookie: name=xyz; expires=Friday, 04-Feb-07 22:03:38 GMT; path=/; domain=tutorialspoint.com Connection: close Content-Type: text/html
Như bạn có thể thấy, header của Cookie chứa cặp name/value, GMT date, đường dẫn path, và một tên miền (domain). Tên và giá trị này sẽ là URL được mã hóa. Trường expires là một chỉ lệnh cho trình duyệt hãy "quên" Cookie này sau thời gian đã cho.
Nếu trình duyệt này được định cấu hình để lưu trữ các Cookie, nó sẽ giữ thông tin này đến khi hết hạn sử dụng. Nếu người dùng trỏ tới bất kì trang nào có đường dẫn path và domain giống với của Cookie, nó sẽ gửi Cookie này đến Server. Header của trình duyệt có thể thấy như sau:
GET / HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/4.6 (X11; I; Linux 2.2.6-15apmac ppc) Host: zink.demon.co.uk:1126 Accept: image/gif, */* Accept-Encoding: gzip Accept-Language: en Accept-Charset: iso-8859-1,*,utf-8 Cookie: name=xyz
Sau đó, một PHP script sẽ có quyền truy cập vào Cookie này bằng biến môi trường $_COOKIE hoặc $HTTP_COOKIE_VARS[], mà giữ tất cả các name và value của Cookie. Cookie ở trên có thể được truy cập bằng cách sử dụng $HTTP_COOKIE_VARS["name"].
Thiết lập Cookie bằng PHP
PHP cung cấp hàm setCookie() để thiết lập một Cookie. Hàm này yêu cầu đến 6 tham số và nó nên được gọi trước thẻ <html>. Với mỗi Cookie, hàm này phải được gọi riêng biệt.
setcookie(name, value, expire, path, domain, security);
Chi tiết từng tham số:
Ví dụ sau sẽ tạo 2 Cookie là name và age, nó sẽ hết hạn sau 1 giờ.
<?php setcookie("name", "Tran Minh Chinh", time()+3600, "/","", 0); setcookie("age", "25", time()+3600, "/", "", 0); ?> <html> <head> <title>Thiết lập Cookie trong PHP</title> </head> <body> <?php echo "Ví dụ thiết lập Cookie"?> </body> </html>
Truy cập Cookie bằng PHP
PHP cung cấp rất nhiều cách để truy cập vào Cookie. Cách đơn giản nhất là sử dụng biến $_COOKIE hoặc $HTTP_COOKIE_VARS. Ví dụ sau sẽ truy cập tất cả các Cookie được thiết lập trong ví dụ trên.
<html> <head> <title>Truy cập Cookie bằng PHP</title> </head> <body> <?php echo $_COOKIE["name"]. "<br />"; /* là tương đương với */ echo $HTTP_COOKIE_VARS["name"]. "<br />"; echo $_COOKIE["age"] . "<br />"; /* là tương đương với */ echo $HTTP_COOKIE_VARS["age"] . "<br />"; ?> </body> </html>
Bạn có thể sử dụng hàm isset() để kiểm tra xem Cookie được thiết lập hay chưa.
<html> <head> <title>Truy cập Cookie bằng PHP</title> </head> <body> <?php if( isset($_COOKIE["name"])) echo "Chào mừng " . $_COOKIE["name"] . "<br />"; else echo "Xin lỗi ... Hình như tôi không biết bạn!!!" . "<br />"; ?> </body> </html>
Xóa Cookie bằng PHP
Để xóa một Cookie bạn nên gọi hàm setCookie() chỉ với tham số name nhưng nó không phải lúc nào cũng hoạt động tốt.
Các an toàn nhất để thiết lập Cookie với một date mà chỉ rằng đã hết hạn sử dụng.
<?php setcookie( "name", "", time()- 60, "/","", 0); setcookie( "age", "", time()- 60, "/","", 0); ?> <html> <head> <title>Xóa Cookie trong PHP</title> </head> <body> <?php echo "Ví dụ xóa Cookie trong PHP" ?> </body> </html>
Các bạn ở Hà Nội có thể tham gia khóa học thứ 8 của vietjackteam (đang tuyển sinh) vào đầu tháng 08/2018 do anh Nguyễn Thanh Tuyền, admin vietjack.com trực tiếp giảng dạy tại Hà Nội. Chi tiết nội dung khóa học tham khỏa link : Khóa học Java.Các bạn học CNTT, điện tử viễn thông, đa phương tiện, điện-điện tử, toán tin có thể theo học khóa này. Số lượng các công việc Java hoặc .NET luôn gấp ít nhất 3 lần Android hoặc iOS trên thị trường tuyển dụng. Khóa online= Đi phỏng vấn, Khóa offline= Đi phỏng vấn+ 1.5 tháng thực tập ngoài doanh nghiệp.
Mọi người có thể xem demo nội dung khóa học tại địa chỉ Video demo khóa học Offline
Các bạn ở xa học không có điều kiện thời gian có thể tham dự khóa Java online để chủ động cho việc học tập. Từ tháng 4/2018, code24h khuyến mại giá SỐC chỉ còn 250k cho khóa học, các bạn có thể trả lại tiền nếu không hài lòng về chất lượng trong 1 tháng, liên hệ facebook admin fb.com/tuyen.vietjack để thanh toán chuyển khoản hoặc thẻ điện thoại, khóa học bằng Tiếng Việt với gần 100 video, các bạn có thể chủ động bất cứ lúc nào, và xem mãi mãi. Thông tin khóa học tại Khóa học Java Online trên Udemy
Follow fanpage của team https://www.facebook.com/vietjackteam/ hoặc facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.
Các bài học PHP phổ biến khác tại code24h: