Phiên PHP & Cookie PHP với ví dụ

Mục lục:

Anonim

Cookie là gì?

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ả về tên và giá trị cookie.

Cookie chỉ có thể được đọc từ miền mà nó đã được cấp. Ví dụ: không thể đọc tập hợp cookie sử dụng miền www.guru99.com từ miền Career.guru99.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ọ. Những 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ó các tùy chọn để tắt cookie, cookie của bên thứ ba hoặc cả hai.

Nếu đúng như vậy thì PHP sẽ phản hồi bằng cách chuyển mã thông báo cookie trong URL.

Sơ đồ dưới đây minh họa cách hoạt động của cookie.

Đây,

1) Người dùng yêu cầu một 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ả về 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 sử dụng Cookie?
  • Tạo cookie
  • Truy xuất giá trị Cookie
  • Xóa cookie
  • Phiên là gì?
  • Tại sao và khi nào sử dụng Sessions?
  • Tạo một phiên
  • Hủy các biến phiên

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

  • Http là một giao thức không trạng thái; cookie cho phép chúng tôi theo dõi trạng thái của ứng dụng bằng cách sử dụng các tệp nhỏ được lưu trữ trên máy tính của người dùng.

    Đường dẫn mà cookie được lưu trữ phụ thuộc vào trình duyệt.

    Internet Explorer thường lưu trữ chúng trong thư mục Temporal Internet Files.

  • 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 mà người dùng đã truy cập

Tạo cookie

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

ĐÂY,

  • Php “setcookie” là hàm PHP được sử 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ó là bắt buộc.
  • “Cookie_value” là giá trị của cookie và là giá trị bắt buộc của nó
  • “[Deadline_time]” là tùy chọn; nó có thể được sử dụng để đặt thời gian hết hạn cho cookie, chẳng hạn như 1 giờ. Thời gian được đặt bằng cách sử dụng các hàm PHP time () cộng hoặc trừ một số giây lớn hơn 0 tức là time () + 3600 trong 1 giờ.
  • “[Cookie_path]” là tùy chọn; nó có thể được sử dụng để đặt đường dẫn cookie trên máy chủ. Dấu gạch chéo “/” 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 miền phụ.
  • “[Domain]” là tùy chọn, nó có thể được sử dụng để xác định phân cấp truy cập cookie, tức là www.cookiedomain.com có ​​nghĩa là toàn bộ miền trong khi www.sub.cookiedomain.com giới hạn quyền truy cập cookie vào www.sub.cookiedomain.com và trang phụ của nó các miền. Lưu ý rằng bạn có thể có miền phụ của 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à false. Nó được sử dụng để xác định xem cookie được gửi qua https nếu nó được đặt thành true hoặc 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, tức là JavaScript không thể truy cập chúng.

Lưu ý: hàm cookie set php phải được thực thi trước thẻ mở HTML.

Bây giờ chúng ta hãy xem xét 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 một 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ụ trên “cookies.php”.

Đầu ra:

the cookie has been set for 60 seconds

Truy xuất giá trị Cookie

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

Đầu ra:

Array ( [PHPSESSID] => h5onbf7pctbr0t68adugdp2611 [user_name] => Guru99 )

Lưu ý: $ _COOKIE là một PHP được xây dựng trong biến siêu toàn cục.

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

Số lượng giá trị mà

Mảng $ _COOKIE có thể chứa phụ thuộc vào dung lượng bộ nhớ được đặt trong php.ini.

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

Đang 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

Lưu ý: Chỉ một mảng trống đã được hiển thị

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

  • Bước 3 - Quay lại tab đầu tiên, sau đó nhấp vào nút làm mới

Chờ một phút sau đó nhấp vào nút làm mới một lần nữa. Bạn đã nhận được kết quả gì?

Xóa cookie

  • Nếu bạn muốn hủy một cookie trước thời hạn của nó, thì bạn đặt thời gian hết hạn thành một khoảng thời gian đã trôi qua.
  • Tạo một tệp mới có tên cookie_destroy.php với 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ở URL 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ục đượ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 đượ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. Cũng 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 sử dụng Sessions?

  • 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ể nóng nảy với họ.
  • Bạn muốn chuyển các giá trị từ trang này sang trang khác.
  • Bạn muốn thay thế cho 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 chẳng hạn 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 trong PHP và sau đó lưu trữ các giá trị của bạn trong biến mảng $ _SESSION.

Let’s suppose we want to know the number of times that a page has been loaded, we can use a session to do that.

The code below shows how to create and retrieve values from sessions

Output:

You are visitor number 1

Destroying Session Variables

The session_destroy() function is used to destroy the whole Php session variables.

If you want to destroy only a session single item, you use the unset() function.

The code below illustrates how to use both methods.

Session_destroy removes all the session data including cookies associated with the session.

Unset only frees the individual session variables.

Other data remains intact.

Summary

  • Cookies are small files saved on the user’s computer
  • Cookies can only be read from the issuing domain
  • Cookies can have an expiry time, if it is not set, then the cookie expires when the browser is closed
  • Sessions are like global variables stored on the server
  • Mỗi phiên được cấp một id nhận dạng duy nhất được sử dụng để theo dõi các biến cho người dùng.
  • Cả cookie và phiên phải được bắt đầu trước khi bất kỳ thẻ HTML nào được gửi đến trình duyệt.