Cách đặt biến phiên trong php?

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

5. Nó sẽ tạo một phiên mới và tạo ID phiên duy nhất cho người dùng

Mã 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

5 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ới

Ghi chú. Bạn phải gọi hàm

5 ở đầ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 
8

Lư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

9. 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

5 rồi chuyển khóa tương ứng vào mảng kết hợp 
1

Mã 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ụ sau

Tuy 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ên

Ghi 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 
5 để có thứ gì đó cần hủy

Mỗ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]

Một cách khác để làm cho dữ liệu có thể truy cập được trên các trang khác nhau của toàn bộ trang web là sử dụng Phiên PHP

Một phiên tạo một tệp trong một thư mục tạm thời trên máy chủ nơi các biến phiên đã đăng ký và giá trị của chúng được lưu trữ. Dữ liệu này sẽ có sẵn cho tất cả các trang trên trang web trong lần truy cập đó

Vị trí của tệp tạm thời được xác định bởi cài đặt trong tệp php. ini được gọi là phiên. Lưu đường dẫn. Trước khi sử dụng bất kỳ biến phiên nào, hãy đảm bảo rằng bạn đã thiết lập đường dẫn này

Khi một phiên được bắt đầu, những điều sau đây sẽ xảy ra -

  • Trước tiên, PHP tạo một mã định danh duy nhất cho phiên cụ thể đó là một chuỗi ngẫu nhiên gồm 32 số thập lục phân, chẳng hạn như 3c7foj34c3jj973hjkop2fc937e3443

  • Cookie có tên PHPSESSID được tự động gửi đến máy tính của người dùng để lưu trữ chuỗi nhận dạng phiên duy nhất

  • Một tệp được tạo tự động trên máy chủ trong thư mục tạm thời được chỉ định và mang tên của mã định danh duy nhất có tiền tố là sess_ tức là sess_3c7foj34c3jj973hjkop2fc937e3443

Khi một tập lệnh PHP muốn truy xuất giá trị từ một biến phiên, PHP sẽ tự động lấy chuỗi mã định danh phiên duy nhất từ ​​cookie PHPSESSID và sau đó tìm trong thư mục tạm thời của nó để tìm tệp mang tên đó và có thể thực hiện xác thực bằng cách so sánh cả hai giá trị

Một phiên kết thúc khi người dùng mất trình duyệt hoặc sau khi rời khỏi trang web, máy chủ sẽ kết thúc phiên sau một khoảng thời gian định trước, thường là 30 phút

Bắt đầu một phiên PHP

Một phiên PHP có thể dễ dàng bắt đầu bằng cách gọi hàm session_start[]. Trước tiên, chức năng này kiểm tra xem một phiên đã bắt đầu chưa và nếu chưa có phiên nào bắt đầu thì nó sẽ bắt đầu một phiên. Bạn nên gọi hàm session_start[] ở đầu trang

Các biến phiên được lưu trữ trong mảng kết hợp có tên $_SESSION[]. Các biến này có thể được truy cập trong suốt thời gian tồn tại của phiên

Ví dụ sau bắt đầu một phiên, sau đó đăng ký một biến có tên là bộ đếm được tăng lên mỗi khi trang được truy cập trong phiên

Sử dụng hàm isset[] để kiểm tra xem biến phiên đã được đặt hay chưa

Đặt mã này trong một bài kiểm tra. php và tải tệp này nhiều lần để xem kết quả -

1

Nó sẽ tạo ra kết quả sau -

2

Phá hủy phiên PHP

Phiên PHP có thể bị hủy bởi hàm session_destroy[]. Hàm này không cần bất kỳ đối số nào và một lệnh gọi có thể hủy tất cả các biến phiên. Nếu bạn muốn hủy một biến phiên thì bạn có thể sử dụng hàm unset[] để hủy đặt một biến phiên

Đây là ví dụ để hủy đặt một biến duy nhất -

3

Đây là cuộc gọi sẽ hủy tất cả các biến phiên -

3

Bật phiên tự động

Bạn không cần gọi hàm start_session[] để bắt đầu phiên khi người dùng truy cập trang web của bạn nếu bạn có thể đặt phiên. biến auto_start thành 1 trong php. tập tin ini

Phiên không có cookie

Có thể xảy ra trường hợp người dùng không cho phép lưu trữ cookie trên máy của họ. Vì vậy, có một phương pháp khác để gửi ID phiên tới trình duyệt

Ngoài ra, bạn có thể sử dụng hằng số SID được xác định nếu phiên bắt đầu. Nếu khách hàng không gửi cookie phiên thích hợp, nó sẽ có dạng session_name=session_id. Mặt khác, nó mở rộng thành một chuỗi rỗng. Do đó, bạn có thể nhúng nó vô điều kiện vào các URL

Ví dụ sau minh họa cách đăng ký một biến và cách liên kết chính xác đến một trang khác bằng SID

Bạn sẽ truy cập biến phiên trong PHP như thế nào?

PHP $_SESSION

Bạn sẽ gán giá trị cho biến phiên như thế nào?

Cách gán giá trị phiên cho một biến .
ob_start[];
$userV = $_SESSION['Người dùng'];
$userV= echo $_SESSION['User'];

Làm cách nào để in biến phiên trong PHP?

Sử dụng cái này. echo ' Or you can use print_r if you don't care about types. If you use print_r, you can make the second argument TRUE so it will return instead of echo, useful for...

Chủ Đề