Php triển khai phiên như thế nào?

3
13

3
14

3
15

3
16

3
17

3
18

3
19

3
20

Phiên là một cách đơn giản để lưu trữ dữ liệu cho từng người dùng dựa trên ID phiên duy nhất. Điều này có thể được sử dụng để duy trì thông tin trạng thái giữa các yêu cầu trang. ID phiên thường được gửi tới trình duyệt thông qua cookie phiên và ID được sử dụng để truy xuất dữ liệu phiên hiện có. Việc không có ID hoặc cookie phiên cho phép PHP biết để tạo phiên mới và tạo ID phiên mới

Các phiên tuân theo một quy trình làm việc đơn giản. Khi một phiên bắt đầu, PHP sẽ truy xuất một phiên hiện có bằng cách sử dụng ID được truyền [thường là từ cookie phiên] hoặc nếu không có phiên nào được truyền, nó sẽ tạo một phiên mới. PHP sẽ điền siêu toàn cục $_SESSION với bất kỳ dữ liệu phiên nào sau khi phiên bắt đầu. Khi PHP tắt, nó sẽ tự động lấy nội dung của $_SESSION superglobal, tuần tự hóa nó và gửi nó để lưu trữ bằng cách sử dụng trình xử lý lưu phiên

Theo mặc định, PHP sử dụng trình xử lý lưu nội bộ

3
21 được đặt theo phiên. save_handler. Điều này lưu dữ liệu phiên trên máy chủ tại vị trí được chỉ định bởi phiên. chỉ thị cấu hình save_path

Các phiên có thể được bắt đầu thủ công bằng hàm session_start[]. Nếu phiên. chỉ thị auto_start được đặt thành

3
22, một phiên sẽ tự động bắt đầu khi khởi động theo yêu cầu

Các phiên thường tự động tắt khi PHP thực thi xong một tập lệnh, nhưng có thể tắt thủ công bằng hàm session_write_close[]

Ví dụ #1 Đăng ký một biến với $_SESSION

3
23

Ví dụ #2 Hủy đăng ký một biến với $_SESSION

3
24

thận trọng

KHÔNG bỏ đặt toàn bộ $_SESSION với

3
25 vì điều này sẽ vô hiệu hóa việc đăng ký các biến phiên thông qua siêu toàn cầu $_SESSION

Cảnh báo

Bạn không thể sử dụng tham chiếu trong biến phiên vì không có cách khả thi nào để khôi phục tham chiếu đến biến khác

Ghi chú

Phiên dựa trên tệp [mặc định trong PHP] khóa tệp phiên sau khi phiên được mở qua session_start[] hoặc hoàn toàn qua phiên. tự động bắt đầu. Sau khi bị khóa, không có tập lệnh nào khác có thể truy cập cùng một tệp phiên cho đến khi nó bị đóng bởi tập lệnh đầu tiên kết thúc hoặc gọi session_write_close[]

Đây rất có thể là sự cố trên các trang Web sử dụng nhiều AJAX và có nhiều yêu cầu đồng thời. Cách dễ nhất để giải quyết vấn đề này là gọi session_write_close[] ngay khi có bất kỳ thay đổi bắt buộc nào đối với phiên, tốt nhất là sớm trong tập lệnh. Ngoài ra, có thể sử dụng một chương trình phụ trợ phiên khác hỗ trợ đồng thời

Xử lý phiên là một khái niệm quan trọng trong PHP cho phép thông tin người dùng được duy trì trên tất cả các trang của trang web hoặc ứng dụng. Trong bài đăng này, bạn sẽ tìm hiểu những điều cơ bản về xử lý phiên trong PHP

Chúng tôi sẽ bắt đầu với phần giải thích về cách phiên hoạt động và cách chúng liên quan đến cookie. Sau đó, chúng ta sẽ xem xét một vài đoạn mã minh họa cách làm việc với các phiên. Bạn sẽ tìm hiểu cách tạo và hủy phiên cũng như cách thay đổi biến phiên

Cookie so với. Biến phiên

Bạn không chắc liệu mình có cần cookie hoặc biến phiên không? . Cookies là một cách để lưu trữ dữ liệu về người dùng trên máy tính của người dùng. Biến phiên thường được sử dụng trong các ứng dụng cần theo dõi hoạt động của người dùng. Cookie thường được sử dụng trong các ứng dụng cần lưu trữ thông tin về người dùng cho một trang web

Bạn cũng có thể tìm hiểu về các biến phiên trong bài viết của tôi về cách sử dụng cookie trong PHP

  • Cách làm việc với cookie trong PHP

    Sajal Soni

    16 Th02 2021

Phiên trong PHP là gì?

Phiên là một cơ chế để duy trì thông tin trên các trang web khác nhau nhằm xác định người dùng khi họ điều hướng một trang web hoặc ứng dụng. Bạn đang tự hỏi tại sao các phiên lại cần thiết cho một trang web?

Giao thức HTTP là một giao thức không trạng thái, có nghĩa là không có cách nào máy chủ có thể nhớ một người dùng cụ thể giữa nhiều yêu cầu. Ví dụ, khi bạn truy cập một trang web, máy chủ chỉ có nhiệm vụ cung cấp nội dung của trang yêu cầu. Vì vậy, khi bạn truy cập các trang khác của cùng một trang web, máy chủ web sẽ diễn giải từng yêu cầu một cách riêng biệt, như thể chúng không liên quan đến nhau. Không có cách nào để máy chủ biết rằng mỗi yêu cầu bắt nguồn từ cùng một người dùng

Sơ đồ sau mô tả tóm tắt giao thức HTTP

Trong mô hình này, nếu bạn muốn hiển thị thông tin cụ thể của người dùng, bạn phải xác thực người dùng trong mỗi yêu cầu. Hãy tưởng tượng nếu bạn phải nhập tên người dùng và mật khẩu của mình trên mọi trang hiển thị thông tin hồ sơ của bạn. Vâng, nó sẽ cồng kềnh và không thực tế chút nào, và đó là lý do tại sao các phiên ra đời

Phiên cho phép bạn chia sẻ thông tin trên các trang khác nhau của một trang web hoặc ứng dụng—do đó, phiên này giúp duy trì trạng thái. Điều này cho phép máy chủ biết rằng tất cả các yêu cầu bắt nguồn từ cùng một người dùng, do đó cho phép trang web hiển thị thông tin và tùy chọn cụ thể của người dùng

Luồng đăng nhập với phiên và cookie

Hãy xem nhanh quy trình đăng nhập phổ biến cho một trang web để hiểu điều gì xảy ra đằng sau hậu trường

  1. Một người dùng mở trang đăng nhập của một trang web
  2. Sau khi gửi biểu mẫu đăng nhập, một máy chủ ở đầu bên kia sẽ xác thực yêu cầu bằng cách xác thực thông tin đăng nhập đã được nhập
  3. Nếu thông tin đăng nhập do người dùng nhập là hợp lệ, máy chủ sẽ tạo một phiên mới. Máy chủ tạo một số ngẫu nhiên duy nhất, được gọi là id phiên. Nó cũng tạo một tệp mới trên máy chủ được sử dụng để lưu trữ thông tin dành riêng cho phiên
  4. Tiếp theo, id phiên được trả lại cho người dùng, cùng với bất kỳ tài nguyên nào được yêu cầu. Đằng sau hậu trường, id phiên này được gửi trong cookie
    3
    47 trong tiêu đề phản hồi
  5. Khi trình duyệt nhận được phản hồi từ máy chủ, nó sẽ xuất hiện tiêu đề cookie 
    3
    47 . Nếu trình duyệt cho phép sử dụng cookie, thì cookie này sẽ lưu 
    3
    47 cookie này, cookie này sẽ lưu id phiên do máy chủ chuyển qua
  6. Đối với các yêu cầu tiếp theo, cookie 
    3
    47 được chuyển trở lại máy chủ. Khi máy chủ bắt gặp cookie 
    3
    47, nó sẽ cố gắng khởi tạo một phiên với id phiên đó. Nó làm như vậy bằng cách tải tệp phiên đã được tạo trước đó, trong quá trình khởi tạo phiên. Sau đó, nó sẽ khởi tạo biến mảng siêu toàn cục 
    3
    52 với dữ liệu được lưu trữ trong tệp phiên

Theo cách này, dữ liệu người dùng được lưu giữ qua nhiều yêu cầu và người dùng được duy trì đăng nhập trong suốt phiên

Sơ đồ sau mô tả cách thức hoạt động của giao thức HTTP với các phiên

Bây giờ bạn đã xem phần giới thiệu ngắn gọn về cách hoạt động của các phiên, chúng ta sẽ tạo một vài ví dụ thực tế để minh họa cách tạo và thao tác các biến phiên

Cách bắt đầu một phiên

Trong phần này, chúng ta sẽ thảo luận về cách bắt đầu một phiên làm việc trong PHP

Bất cứ khi nào bạn muốn xử lý các biến phiên, bạn cần đảm bảo rằng một phiên đã được bắt đầu. Có một số cách bạn có thể bắt đầu một phiên làm việc trong PHP

Sử dụng Hàm 
3
53 

Đây là phương pháp mà bạn sẽ thấy thường xuyên nhất, trong đó một phiên được bắt đầu bằng hàm 

3
53

1
_______9
3
0
3
1
3
3
3
3
4_______15
3
6
3
7

Chủ Đề