Cookie trong PHP - AGOLA Cookie trong PHP - AGOLA

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.

Bài viết 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 ở phần header của HTTP (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=quantrimang.com
Connection: close
Content-Type: text/html

Như bạn có thể thấy, Set-Cookie của cookie chứa cặp name/value, ngày giờ GMT, đườ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[], biến này 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ố:

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 vớ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", "QTM", time()+3600, "/","", 0); setcookie("age", "18", time()+3600, "/", "", 0); ?> <html> <head> <title>Thiết lập cookie với 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 "Xin chào! " . $_COOKIE["name"] . "<br />"; else echo "Xin lỗi... Mình không quen nhau!" . "<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, "/"

Các lý do cần đọc trước khi quyết định liên hệ tôi 

  1. Tham gia group Mua bán Google Ads và Google Shopping :

    https://www.facebook.com/groups/314513929300715

  2. Tham gia group mua bán cho thuê tài khoản BM Agency :

    https://www.facebook.com/groups/1204318359703229

  3. AGOLA chỉ cung cấp dịch vụ không có dịch vụ tư vấn hiểu tới đâu bán tới đó !
  4. AGOLA ngừng cung cấp các gói dịch cho bọn có Slogan " Tuần đổi xe tháng mua nhà " hoặc liên quan !
  5. Các dịch vụ liên quan đến hướng dẫn : diễn ra từ 5-30 phút thông qua teamview hoặc ultral thời gian càng ngắn giá tiền càng cao nên các bạn đọc kỹ trước khi sử dụng
  6. Các sản phẩm dịch vụ không có thương thảo giá và cũng không có hỏi thêm
  7. Không làm việc với mấy thằng giao lưu với lũ suốt ngày dùng VPS remote này remote kia sock này sock kia đổi ngôn ngữ này đổi ngôn ngữ kia add page này sang page kia đổi đá cá kiểu con đà điều ... đây là một lũ ngu thời hiện đại khi bạn muốn vượt rào vòng đầu bạn đã gian lận thì vượt vào đít kèm với đó khả năng dính liên đơi nghi ngờ hành vi bất thường là rất cao nó như kiểu hành vi của bạn có tần xuất giống như hành vi của bọn gian lận khá nhiều nó cho bạn vào động cơ gian lận có nguy cơ nó sẽ pem luôn nhé ... và ti tỷ lý do khác nhé nếu bọn mày mà làm theo tụi nó lên cam được tao cho 20 triệu tiền cafe cà pháo
  8. Không bán vĩnh viễn mọi dịch vụ mua nhầm đòi đổi sang gói dịch vụ khác
  9. Thông tin bảo hành gần như không có nhưng cũng có một số dịch vụ có bảo hành đề nghị đọc kỹ trước khi quyết định mua
  10. Quyết định mua hàng là đồng ý các điều khoản mua bán và điều khoản không được lấy lại tiền và không bồi hoàn
  11. Mua hàng thì xin đọc kỹ điều khoản ở từng mô tả trước khi quyết định nhấc máy liên hệ ở thông tin của từng gói dịch vụ
  12. Mọi giao dịch đều được phải bắt buộc chụp màn hình chuyển khoản gửi vào Zalo
  13. Các đối tượng cố ý chuyển tiền gói này để trục lợi sử dụng gói khác đều được coi là hình vi lừa đảo ! Cố ý ghi nội dung hiểu lầm về chuyển tiền để đôi co đòi sử dụng gói dịch vụ khác cũng vậy !
  14. Tôi là dân khối A nên việc viết sai lỗi chính tả thì kệ mẹ tôi thích thì mua không thích thì đừng soi đi ra chỗ khác do tôi không có soát lại chính tả nên các bạn đọc thay vì thắc mắc thì thông cảm giùm tôi ! miễn sao tôi truyền tải thông tin bạn đọc bạn thấy hiểu được bạn sử dụng không được bạn tìm bên khác
  15. Tôi không làm việc với bọn cử nhân viên là các công ty Agency , truyền thông gọi hỏi dò hỏi luyên thuyên ! Nếu cố tình tôi sẽ dùng CRM Agency cấm lock chạy Ads vĩnh viễn khi nhìn thấy đuôi theo rõi của doanh nghiệp đó mà tôi đã gán.
  16. Tôi không làm việc với bọn nào thì tôi chạy tiền tỷ tôi tiêu tiền tỷ nhưng chạy demo trước nếu ngon thì vít lớn nhưng sau 3 ngày thuê thấy đéo thấy như cam kết về ngân sách
  17. Tôi không hợp tác ăn chia hay kiểu Win Win đôi bên có lợi
  18. Tất cả những câu hỏi khi gọi điện khiến tôi nghĩ rằng bạn chưa đọc kỹ thông tin trên website sẽ được tôi từ chối vô điều kiện
  19. Không làm việc các công ty có các nhân vật nổi tiếng trên các đài báo truyền hình bởi vậy bớt quảng cáo
  20. Các đối tượng cố tình lên mạng tìm kiểm thông tin tôi và không có trao đổi được tôi dùng Zalo : O9O9.456.866 gửi STK thông tin thanh toán của tôi qua zalo đó mà vẫn chuyển tiền vào tài khoản của tôi được coi là hình vi lừa đảo cố tình trọc phá và lợi dụng sử dụng lừa đảo để mong muốn sử dụng dịch vụ của tôi nhưng vì cấm nên phải làm vậy
  21. Kiến thức của đại đa số dân trên mạng không sai mà chỉ đúng với bọn gà mờ mà thôi kiểu như bạn học lớp 1 cô giáo nói 1 không trừ được cho 2 lên cấp 2 cô giáo nói 1 trừ được cho 2 ! Lúc đó cô giáo cấp 1 hay thầy giáo cấp 2 không nói ai đúng ai sai được mà tại thời điểm đó bạn thấy nó đúng còn khi đi sâu vào nó đéo đúng 😀 ! Cũng như việc tôi bán dịch vụ cho dân trong nghề việc tôi có bắt mấy thằng cấp 1 nuốt kiến thức chuyên sâu của cấp 2 là không được bởi vậy dân nào hiểu sẽ liên hệ mua chứ đừng kiểu lơ mở hỏi cho vui cửa vui nhà
  22. Không làm việc với bọn hở miệng ra là em từng có BM2500 với BM1000
  23. Không lamg việc với bọn hở mồm ra là fake mà đến cái via kiểm tra như thế nào là 1 cái via Việt hay via us... cũng đéo biết kiểm tra thế mà cứ đi nghe mấy thằng trên mạng Fake Ip , Fake đổi ngôn ngữ này ngôn ngữ kia ... tùm lum tà la login đổi via các kiểu con đa điểu rồi nghe thì vui tai mà làm cũng được không đéo có biết lý do chỉ có lý do vớ vẩn - Không tin tao đố bọn mày hỏi thử nó 1 câu via Việt là như thế nào đố thằng đó biết đó xàm xí - hay via việt là thông tin Việt Nam hahaha !
  24. Không làm việc với bọn nào thì đổi mạng 4g kết nối này kết nối kia lên cam có con cặc ấy mấy cái công nghệ cổ lỗ sĩ này bọn code tool click quảng cáo nó sài gần 10 năm nay rồi lòe dân gà hoài dần dần ko hiệu quả bọn nó ko dùng rồi lũ đó biến mất khỏi thị trường bán tài khoản
  25. Quyết tâm cấm log mọi thằng liên quan tới BM2500 vĩnh viễn hạn chế tài khoản quảng cáo liên đới từ 6 tới 2 năm kể cả cho kháng XMDT theo tút trên mạng
  26. Tiếp tục sắp tới sẽ thanh lọc toàn bộ Invoice
  27. Bọn mày nghĩ xem mẹ chúng nó giỏi vậy nhận hàng về mà chạy quảng cáo đi giàu hơn ko sao phải đi kiếm tiền dạy học ba láp ba xàm đó xem thấy quảng cáo của tụi đó trước đây chạy quảng cáo tràn lan quảng bá khóa học như đúng rồi giờ chạy đi ba láp ba xàm

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Call Now Button
X