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à gì
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
Đặt Cookie trong PHP
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ớisetcookie[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ư sauTham 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ànMẹ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
Truy cập giá trị cookie
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ã sauMã 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àyBạ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ácXóa Cookie
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ướiMẹ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
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
Tạo Cookie
Bây giờ hãy xem cú pháp cơ bản được sử dụng để tạo cookie
6NƠ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
1Truy xuất giá trị Cookie
Tạo một tệp khác có tên “cookies_read. php” với đoạn mã sau
đầu ra
3Ghi 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
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
- Bước 3 – Chuyển về tab đầu tiên, sau đó nhấp vào nút làm mới
Đợ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
- 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 đó