Cookie PHP

Trong hướng dẫn này, bạn sẽ học cách lưu trữ một lượng nhỏ thông tin trong chính trình duyệt của người dùng bằng cookie PHP

Cookie là một tệp văn bản nhỏ cho phép bạn lưu trữ một lượng nhỏ dữ liệu (gần 4KB) trên máy tính của người dùng. Chúng thường được sử dụng để theo dõi thông tin như tên người dùng mà trang web có thể truy xuất để cá nhân hóa trang khi người dùng truy cập trang web lần sau

Mẹo. Mỗi khi trình duyệt yêu cầu một trang đến máy chủ, tất cả dữ liệu trong cookie sẽ tự động được gửi đến máy chủ trong yêu cầu

Hàm

5 được sử dụng để đặt cookie trong PHP. Đảm bảo rằng bạn gọi hàm 
5 trước bất kỳ đầu ra nào được tạo bởi tập lệnh của bạn nếu không cookie sẽ không được đặt. Cú pháp cơ bản của chức năng này có thể được đưa ra với

setcookie(tên, giá trị, hết hạn, đường dẫn, tên miền, bảo mật);

Các tham số của hàm

5 có ý nghĩa như sau

Tham sốMô tả

8Tên của cookie. 
9Giá trị của chiếc bánh quy. Không lưu trữ thông tin nhạy cảm vì giá trị này được lưu trữ trên máy tính của người dùng. 
0Ngày hết hạn ở định dạng dấu thời gian UNIX. Sau thời gian này, cookie sẽ không thể truy cập được. Giá trị mặc định là 0. 
0Chỉ định đường dẫn trên máy chủ mà cookie sẽ khả dụng. Nếu được đặt thành 
1, cookie sẽ có sẵn trong toàn bộ miền. 
2Chỉ định tên miền có sẵn cookie cho e. g www. thí dụ. com. 
3Trường này, nếu có, cho biết rằng cookie chỉ được gửi nếu tồn tại kết nối HTTPS an toàn

Mẹo. Nếu thời gian hết hạn của cookie được đặt thành 0 hoặc bị bỏ qua, thì cookie sẽ hết hạn vào cuối phiên tôi. e. khi trình duyệt đóng

Đây là một ví dụ sử dụng hàm

5 để tạo cookie có tên 
5 và gán giá trị giá trị 
6 cho nó. Nó cũng xác định rằng cookie sẽ hết hạn sau 30 ngày (______07)

Ghi chú. Tất cả các đối số ngoại trừ tên là tùy chọn. Bạn cũng có thể thay thế một đối số bằng một chuỗi rỗng ("") để bỏ qua đối số đó, tuy nhiên, để bỏ qua đối số hết hạn, hãy sử dụng số không (0) thay vì đó là số nguyên

Cảnh báo. Không lưu trữ dữ liệu nhạy cảm trong cookie vì nó có khả năng bị người dùng ác ý thao túng. Thay vào đó, để lưu trữ dữ liệu nhạy cảm một cách an toàn, hãy sử dụng phiên


Biến superglobal PHP

8 được sử dụng để truy xuất giá trị cookie. Nó thường là một mảng kết hợp chứa danh sách tất cả các giá trị cookie được gửi bởi trình duyệt trong yêu cầu hiện tại, được khóa bởi tên cookie. Giá trị cookie riêng lẻ có thể được truy cập bằng cách sử dụng ký hiệu mảng tiêu chuẩn, ví dụ: để hiển thị cookie tên người dùng được đặt trong ví dụ trước, bạn có thể sử dụng mã sau

Mã PHP trong ví dụ trên tạo ra đầu ra sau

Bạn nên kiểm tra xem cookie có được đặt hay không trước khi truy cập giá trị của nó. Để làm điều này, bạn có thể sử dụng hàm PHP

9, như thế này

Bạn có thể sử dụng hàm

0 như 
1 để xem cấu trúc của mảng kết hợp 
8 này, giống như bạn với các mảng khác


Bạn có thể xóa cookie bằng cách gọi hàm

5 tương tự với tên cookie và bất kỳ giá trị nào (chẳng hạn như chuỗi trống), tuy nhiên, lần này bạn cần đặt ngày hết hạn trong quá khứ, như minh họa trong ví dụ bên dưới

Mẹo. Bạn nên chuyển chính xác đường dẫn, tên miền và các đối số khác mà bạn đã sử dụng khi tạo cookie lần đầu để đảm bảo rằng cookie chính xác sẽ bị xóa

Cookie là một tệp nhỏ có kích thước tối đa là 4KB mà máy chủ web lưu trữ trên máy khách

Khi cookie đã được đặt, tất cả các yêu cầu trang theo sau sẽ trả lại tên và giá trị cookie

Cookie chỉ có thể được đọc từ tên miền mà nó đã được phát hành từ đó. Ví dụ: bộ cookie sử dụng tên miền www. gu99. com không thể được đọc từ sự nghiệp tên miền. gu99. com

Hầu hết các trang web trên internet hiển thị các yếu tố từ các lĩnh vực khác như quảng cáo. Các miền phục vụ các phần tử này cũng có thể đặt cookie của riêng chúng. Chúng được gọi là cookie của bên thứ ba

Cookie do người dùng tạo chỉ có thể hiển thị với họ. Người dùng khác không thể nhìn thấy giá trị của nó

Hầu hết các trình duyệt web đều có tùy chọn tắt cookie, cookie của bên thứ ba hoặc cả hai

Nếu trường hợp này xảy ra thì PHP sẽ phản hồi bằng cách chuyển mã thông báo cookie vào URL

Sơ đồ hiển thị bên dưới minh họa cách thức hoạt động của cookie

Cookie PHP

Nơi đây,

1) Người dùng yêu cầu trang lưu trữ cookie

2) Máy chủ đặt cookie trên máy tính của người dùng

3) Các yêu cầu trang khác từ người dùng sẽ trả lại tên và giá trị cookie

Trong hướng dẫn này, bạn sẽ học-

  • Tại sao và khi nào nên sử dụng Cookies?
  • Tạo Cookie
  • Truy xuất giá trị Cookie
  • Xóa Cookies
  • Phiên là gì?
  • Tại sao và khi nào nên sử dụng Phiên?
  • Tạo một phiên
  • Phá hủy các biến phiên

Tại sao và khi nào nên sử dụng Cookies?

  • Http là một giao thức không trạng thái; . Đường dẫn cookie được lưu trữ tùy thuộc vào trình duyệt. Internet Explorer thường lưu trữ chúng trong thư mục Tệp Internet tạm thời
  • Cá nhân hóa trải nghiệm người dùng – điều này đạt được bằng cách cho phép người dùng chọn tùy chọn của họ. Trang được yêu cầu theo dõi được cá nhân hóa dựa trên các tùy chọn đã đặt trong cookie
  • Theo dõi các trang được truy cập bởi người dùng

Bây giờ hãy xem cú pháp cơ bản được sử dụng để tạo cookie

6

NƠI ĐÂY,

  • Php“setcookie” là hàm PHP dùng để tạo cookie
  • “cookie_name” là tên của cookie mà máy chủ sẽ sử dụng khi truy xuất giá trị của nó từ biến mảng $_COOKIE. Nó bắt buộc
  • “cookie_value” là giá trị của cookie và giá trị bắt buộc của nó
  • “[expiry_time]” là tùy chọn; . Thời gian được đặt bằng cách sử dụng các hàm time() của PHP cộng hoặc trừ một số giây lớn hơn 0 i. e. time() + 3600 trong 1 giờ
  • “[cookie_path]” là tùy chọn; . Dấu gạch chéo lên “/” có nghĩa là cookie sẽ được cung cấp trên toàn bộ miền. Các thư mục con giới hạn quyền truy cập cookie vào tên miền phụ
  • “[miền]” là tùy chọn, nó có thể được sử dụng để xác định hệ thống phân cấp truy cập cookie i. e.
    70 có nghĩa là toàn bộ miền trong khi 
    71 giới hạn quyền truy cập cookie đối với 
    71 và các miền phụ của nó. Lưu ý rằng có thể có tên miền phụ của tên miền phụ miễn là tổng số ký tự không vượt quá 253 ký tự
  • “[secure]” là tùy chọn, mặc định là sai. Nó được sử dụng để xác định xem cookie có được gửi qua https nếu nó được đặt thành true hay http nếu nó được đặt thành false
  • “[Httponly]” là tùy chọn. Nếu nó được đặt thành true, thì chỉ các ngôn ngữ kịch bản phía máy khách i. e. JavaScript không thể truy cập chúng

Ghi chú. chức năng cookie đặt php phải được thực thi trước thẻ mở HTML

Bây giờ hãy xem một ví dụ sử dụng cookie

Chúng tôi sẽ tạo một chương trình cơ bản cho phép chúng tôi lưu trữ tên người dùng trong cookie sẽ hết hạn sau mười giây

Đoạn mã dưới đây cho thấy việc triển khai ví dụ “cookies” ở trên. php”

7

đầu ra

1

Tạo một tệp khác có tên “cookies_read. php” với đoạn mã sau

2

đầu ra

3

Ghi chú. $_COOKIE là một PHP được xây dựng trong biến siêu toàn cầu

Nó chứa tên và giá trị của tất cả các cookie đã đặt

Số giá trị mà

Mảng $_COOKIE có thể chứa tùy thuộc vào kích thước bộ nhớ được đặt trong php. ban đầu

Giá trị mặc định là 1GB

Kiểm tra ứng dụng của chúng tôi

Giả sử bạn đã lưu các tệp PHP của mình trong thư mục phptus

  • Bước 1 – mở trình duyệt web của bạn và nhập URL http. //localhost/phptuts/cookies_read. php

Cookie PHP

Ghi chú. Chỉ một mảng trống đã được hiển thị

  • Bước 2 – Trình duyệt đến URL http. //localhost/phptuts/cookie. php

Cookie PHP

  • Bước 3 – Chuyển về tab đầu tiên, sau đó nhấp vào nút làm mới

Cookie PHP

Đợi một phút rồi nhấp lại vào nút làm mới. Bạn đã nhận được kết quả gì?

Xóa Cookies

  • Nếu bạn muốn hủy cookie trước khi hết hạn, thì bạn đặt thời gian hết hạn thành thời gian đã trôi qua
  • Tạo một trường mới có tên hủy cookie. php với đoạn mã sau
4
  • Lặp lại các bước từ 1 đến 3 từ phần trên để truy xuất các giá trị cookie
  • Mở địa chỉ http. //localhost/phptuts/cookie_destroy. php
  • Chuyển sang URL http. //localhost/phptuts/cookies_read. php nó hiển thị kết quả gì?

Phiên là gì?

  • Phiên là một biến toàn cầu được lưu trữ trên máy chủ
  • Mỗi phiên được gán một id duy nhất được sử dụng để truy xuất các giá trị được lưu trữ
  • Bất cứ khi nào một phiên được tạo, một cookie chứa id phiên duy nhất sẽ được lưu trữ trên máy tính của người dùng và được trả về với mọi yêu cầu tới máy chủ. Nếu trình duyệt máy khách không hỗ trợ cookie, id phiên php duy nhất sẽ được hiển thị trong URL
  • Phiên có khả năng lưu trữ dữ liệu tương đối lớn so với cookie
  • Các giá trị phiên sẽ tự động bị xóa khi đóng trình duyệt. Nếu bạn muốn lưu trữ các giá trị vĩnh viễn, thì bạn nên lưu trữ chúng trong cơ sở dữ liệu
  • Cũng giống như biến mảng $_COOKIE, các biến phiên được lưu trữ trong biến mảng $_SESSION. Giống như cookie, phiên phải được bắt đầu trước bất kỳ thẻ HTML nào

Tại sao và khi nào nên sử dụng Phiên?

  • Bạn muốn lưu trữ thông tin quan trọng như id người dùng một cách an toàn hơn trên máy chủ nơi những người dùng độc hại không thể kiểm soát chúng
  • Bạn muốn chuyển giá trị từ trang này sang trang khác
  • Bạn muốn thay thế cookie trên các trình duyệt không hỗ trợ cookie
  • Bạn muốn lưu trữ các biến toàn cục theo cách hiệu quả và an toàn hơn so với việc chuyển chúng vào URL
  • Bạn đang phát triển một ứng dụng như giỏ hàng phải lưu trữ thông tin tạm thời với dung lượng lớn hơn 4KB

Tạo một phiên

Để tạo một phiên, trước tiên bạn phải gọi hàm session_start của PHP và sau đó lưu các giá trị của bạn vào biến mảng $_SESSION

Giả sử chúng ta muốn biết số lần một trang đã được tải, chúng ta có thể sử dụng một phiên để làm điều đó

Cookie là một tệp nhỏ mà máy chủ nhúng vào máy tính của người dùng . Mỗi khi cùng một máy tính yêu cầu một trang có trình duyệt, nó cũng sẽ gửi cookie. Với PHP, bạn có thể tạo và truy xuất các giá trị cookie.
Cookie được sử dụng để mang thông tin từ trang web này sang trang web khác hoặc giữa các phiên trên các trang web có liên quan mà không phải tạo gánh nặng cho máy chủ với dung lượng lưu trữ dữ liệu khổng lồ.
Ví dụ .
<. LOẠI TÀI LIỆU html>
$cookie_name = "người dùng";
nếu(. isset($_COOKIE[$cookie_name])) { echo "Cookie name '". $cookie_name. "' không được đặt. "; } khác { tiếng vang "Cookie '". $.
.
.
Cả hai đều hoàn thành nhiều việc giống nhau. Sự khác biệt chính giữa cookie và phiên là thông tin được lưu trữ trong cookie được lưu trữ trên trình duyệt của khách truy cập và thông tin được lưu trữ trong phiên thì không—thông tin được lưu trữ tại máy chủ web. This difference determines what each is best suited for.