XtGem Forum catalog
Giờ là 09:25 Chúc buổi sáng vui vẻ
Trang ChủDiễn ĐànThông Tin
Hãy nhanh tay Đăng Kí hoặc Đăng Nhập để trở thành thành viên chính thức của ๖ۣۜVina๖ۣۜMasTer๖ۣۜXtgem๖ۣۜCom๖ và cùng thảo luận!
» » » [PHP] Bài 17 - CooKie
Bạn phải để Bình Luận
Đánh Dấu
| Lượt Xem:
HarryWillson * HarryWillson (Member) [Off]
* 11-10-2016

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ề:
Script phía Server gửi một tập các Cookie cho trình duyệt. Ví dụ: tên, tuổi, …
Trình duyệt lưu trữ thông tin này trên máy local để sử dụng trong tương lại.
Lần tiếp theo khi trình duyệt gửi bất cứ yêu cầu nào cho Web Server, nó sẽ gửi các thông tin Cookie đó cho Server và Server sẽ sử dụng thông tin đó để xác định người dùng này.
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

Copy code
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ườngexpireslà 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

Copy code
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àmsetCookie()để 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);
Copy code
Chi tiết từng tham số:
Name− Thiết lập tên của Cookie và nó được lưu trữ trong một biến môi trường là HTTP_COOKIE_VARS. Biến này được sử dụng khi truy cập vào Cookie.
Value− Thiết lập giá trị của biến name và nó là nội dung mà bạn thực sự muốn lưu trữ.
Expiry− Chỉ ra hạn sử dụng của Cookie. Thời gian tính bằng giây từ 1/1/1970. Sau thời gian này, Cookie sẽ không thể truy cập. Nếu tham số này không được thiết lập thì Cookie sẽ tự động hết hiệu lực khi trình duyệt bị đóng.
Path− Xác định các thư mục mà Cookie có hiệu lực. Một ký tự dấu gạch chéo duy nhất (/) cho phép Cookie có hiệu lực đối tất cả các thư mục.
Domain− Xác định tên miền. Tất cả các Cookie chỉ có hiệu lực cho tên miền đã đưa ra.
Security− Nó có thể được thiết lập thành 1 để chỉ rằng Cookie này chỉ được gửi bằng truyền dẫn an toàn sử dụng HTTPS, ngược lại nếu thiết lập thành 0, nó có nghĩa rằng Cookie có thể gửi bằng HTTP thông thường.
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>

Copy code
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>

Copy code
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>

Copy code
Xóa Cookie bằng PHP
Để xóa một Cookie bạn nên gọi hàmsetCookie()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>

Copy code

(0)
Tổng Số Bình Luận: 1
categoriTừ Khóa
Chia Sẽ Bài Viết Này:SMS Google Zing Facebook Twitter
- Link:
- BBcode:
- HTML:
Trang Chủ|Nội Quy Diễn Đàn

Đang Trực Tuyến
1 Khách Viếng Thăm
-->
Liên Minh VinaMasTer™
CodeBlogGer.Club - Nơi Chia Sẽ Code BlogGer
Anmie37.Cf - Trang Đọc Truyện OnLine, Thể Loại Truyện Phong Phú
VnMaster.Yn.Lt
Admin cần liên kết wap 2 sll ai textlink click vào đây để lh Admin
•©opyRight By: HarryWillSon™
•Timeload : 0.0002/Giây
•TimeOut : 0.1%