Trong hướng dẫn này, bạn sẽ học cách lưu trữ tạm thời một số dữ liệu nhất định trên máy chủ bằng cách sử dụng phiên PHP
Phiên là gì
Mặc dù bạn có thể lưu trữ dữ liệu bằng cookie nhưng nó có một số vấn đề về bảo mật. Vì cookie được lưu trữ trên máy tính của người dùng nên kẻ tấn công có thể dễ dàng sửa đổi nội dung cookie để chèn dữ liệu có thể gây hại vào ứng dụng của bạn, điều này có thể làm hỏng ứng dụng của bạn
Ngoài ra, mỗi khi trình duyệt yêu cầu một URL đến máy chủ, tất cả dữ liệu cookie cho một trang web sẽ tự động được gửi đến máy chủ trong yêu cầu. Điều đó có nghĩa là nếu bạn đã lưu trữ 5 cookie trên hệ thống của người dùng, mỗi cookie có kích thước 4KB, trình duyệt cần tải lên 20KB dữ liệu mỗi khi người dùng xem một trang, điều này có thể ảnh hưởng đến hiệu suất trang web của bạn
Bạn có thể giải quyết cả hai vấn đề này bằng cách sử dụng phiên PHP. Phiên PHP lưu trữ dữ liệu trên máy chủ chứ không phải máy tính của người dùng. Trong môi trường dựa trên phiên, mọi người dùng được xác định thông qua một số duy nhất được gọi là mã định danh phiên hoặc SID. ID phiên duy nhất này được sử dụng để liên kết từng người dùng với thông tin của riêng họ trên máy chủ như email, bài đăng, v.v.
Mẹo. ID phiên được tạo ngẫu nhiên bởi công cụ PHP, gần như không thể đoán được. Hơn nữa, vì dữ liệu phiên được lưu trữ trên máy chủ nên nó không phải được gửi với mọi yêu cầu của trình duyệt
Bắt đầu một phiên PHP
Trước khi bạn có thể lưu trữ bất kỳ thông tin nào trong các biến phiên, trước tiên bạn phải khởi động phiên. Để bắt đầu một phiên làm việc mới, chỉ cần gọi hàm PHP
1. Nó sẽ tạo một phiên mới và tạo ID phiên duy nhất cho người dùngMã PHP trong ví dụ bên dưới chỉ đơn giản là bắt đầu một phiên làm việc mới
Đầu tiên, hàm
1 kiểm tra xem phiên đã tồn tại chưa bằng cách tìm kiếm sự hiện diện của ID phiên. Nếu nó tìm thấy một, tôi. e. nếu phiên đã bắt đầu, nó sẽ thiết lập các biến phiên và nếu không, nó sẽ bắt đầu một phiên mới bằng cách tạo ID phiên mớiGhi chú. Bạn phải gọi hàm
1 ở đầu trang i. e. trước bất kỳ đầu ra nào được tạo bởi tập lệnh của bạn trong trình duyệt, giống như cách bạn thực hiện khi đặt cookie bằng chức năng 4Lưu trữ và truy cập dữ liệu phiên
Bạn có thể lưu trữ tất cả dữ liệu phiên của mình dưới dạng các cặp khóa-giá trị trong mảng siêu toàn cục
5. Dữ liệu được lưu trữ có thể được truy cập trong suốt thời gian tồn tại của phiên. Hãy xem xét tập lệnh sau, tập lệnh này tạo phiên mới và đăng ký hai biến phiênĐể truy cập dữ liệu phiên mà chúng tôi đã đặt trong ví dụ trước từ bất kỳ trang nào khác trên cùng một miền web — chỉ cần tạo lại phiên bằng cách gọi
1 rồi chuyển khóa tương ứng vào mảng kết hợp 1Mã PHP trong ví dụ trên tạo ra đầu ra sau
Ghi chú. Để truy cập dữ liệu phiên trong cùng một trang, không cần phải tạo lại phiên vì nó đã được bắt đầu ở đầu trang
Phá hủy một phiên
Nếu bạn muốn xóa dữ liệu phiên nhất định, chỉ cần bỏ đặt khóa tương ứng của mảng kết hợp
1, như minh họa trong ví dụ sauTuy nhiên, để hủy hoàn toàn một phiên, chỉ cần gọi hàm
3. Hàm này không cần bất kỳ đối số nào và một lệnh gọi sẽ hủy tất cả dữ liệu phiênGhi chú. Trước khi hủy một phiên bằng hàm
3, trước tiên bạn cần tạo lại môi trường phiên nếu nó chưa có ở đó bằng cách sử dụng hàm 1 để có thứ gì đó cần hủyMỗi phiên PHP có một giá trị thời gian chờ — thời lượng, được tính bằng giây — xác định thời gian một phiên sẽ tồn tại trong trường hợp không có bất kỳ hoạt động nào của người dùng. Bạn có thể điều chỉnh khoảng thời gian chờ này bằng cách thay đổi giá trị của biến
6 trong tệp cấu hình PHP [7]Phiên PHP được sử dụng để lưu trữ và truyền thông tin tạm thời từ trang này sang trang khác [cho đến khi người dùng đóng trang web]
Kỹ thuật phiên PHP được sử dụng rộng rãi trong các trang web mua sắm, nơi chúng tôi cần lưu trữ và chuyển thông tin giỏ hàng e. g. tên người dùng, mã sản phẩm, tên sản phẩm, giá sản phẩm, v.v. từ trang này sang trang khác
Phiên PHP tạo id người dùng duy nhất cho mỗi trình duyệt để nhận ra người dùng và tránh xung đột giữa nhiều trình duyệt
Hàm session_start[] trong PHP
Hàm session_start[] trong PHP được sử dụng để bắt đầu phiên làm việc. Nó bắt đầu một phiên mới hoặc tiếp tục phiên hiện có. Nó trả về phiên hiện tại nếu phiên đã được tạo. Nếu phiên không có sẵn, nó sẽ tạo và trả về phiên mới
cú pháp
Thí dụ
PHP $_SESSION
PHP $_SESSION là một mảng kết hợp có chứa tất cả các biến phiên. Nó được sử dụng để đặt và nhận các giá trị biến phiên