Làm cách nào để xử lý các biến phiên trong PHP?

Hướng dẫn này bao gồm xử lý phiên trong PHP. Nó cung cấp các ví dụ để tạo, cập nhật và hủy các phiên trong PHP. Nó cũng cung cấp các ví dụ để đặt, đọc và xóa các biến phiên trong PHP

23 Tháng Tư, 2020

Hướng dẫn này cung cấp các ví dụ để xử lý các phiên trong PHP. Nó cung cấp các ví dụ để tạo, cập nhật và hủy các phiên trong PHP

Tại sao chúng ta cần phiên trong PHP?

Chúng tôi có thể lưu trữ dữ liệu tạm thời của các ứng dụng khách giao tiếp với máy chủ bằng cách sử dụng Cookie hoặc Phiên. Vấn đề chính với cookie là dữ liệu được lưu trữ ở phía máy khách. e. trình duyệt và kẻ tấn công có thể dễ dàng sửa đổi dữ liệu cookie bằng cách đánh cắp dữ liệu đó, điều này có thể làm lộ danh tính, dữ liệu người dùng hoặc tiêm mã độc bao gồm cả SQL injection. Vì vậy, chúng tôi luôn ưu tiên sử dụng SSL để truyền cookie được mã hóa và chỉ lưu trữ dữ liệu không tiết lộ danh tính hoặc dữ liệu cá nhân của người dùng. Cookie cũng làm tăng thêm băng thông mạng do các ứng dụng khách luôn gửi dữ liệu cookie đến máy chủ và máy chủ sẽ trả lại dữ liệu đó sau mỗi yêu cầu

Chúng tôi cũng có thể sử dụng Phiên để lưu trữ dữ liệu tạm thời ở phía máy chủ. Điều này sẽ không hiển thị dữ liệu trực tiếp cho khách hàng và tránh băng thông mạng bổ sung cần thiết để gửi và nhận dữ liệu tạm thời. PHP tạo ID phiên ngẫu nhiên khó đoán và liên kết Id phiên duy nhất với mọi máy khách

Cách sử dụng phổ biến nhất của Phiên trong PHP là theo dõi người dùng đã đăng nhập. Phiên có thể được tạo khi đăng nhập thành công và nó có thể bị hủy khi đăng xuất. Các yêu cầu và trang trung gian có thể truy cập người dùng bằng cách sử dụng biến phiên. Ngoài ra, chúng tôi có thể hiển thị thông báo lỗi và yêu cầu người dùng đăng nhập lại nếu người dùng truy cập các trang riêng tư khi hết thời gian phiên

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

Chúng ta có thể sử dụng hàm session_start để bắt đầu một phiên làm việc mới. Nó sẽ tạo một phiên mới và cũng tạo một id phiên duy nhất được liên kết với ứng dụng khách. Mã ví dụ để bắt đầu một phiên được hiển thị bên dưới

// Start the session if not exist
session_start();

Điều này chỉ đơn giản là bắt đầu một phiên bằng cách tạo id phiên duy nhất. Nó kiểm tra nội bộ xem id phiên đã tồn tại cho cùng một máy khách chưa. Trong những trường hợp như vậy, nó sẽ tiếp tục phiên hiện tại mà không tạo phiên mới

Lưu trữ dữ liệu phiên

Chúng ta có thể tạo, cập nhật hoặc xóa các biến phiên bằng cách sử dụng mảng siêu toàn cục $_SESSION. Các mảng siêu toàn cục khác trong PHP bao gồm $_GET, $_POST, $_REQUEST, $_FILES, $_COOKIE và $_SERVER. Mảng siêu toàn cầu $_SESSION có thể được sử dụng như hình bên dưới

// Start the session if not exist
session_start();

....
....
// Code to process the form data
....
....

// Store session data
$_SESSION[ 'name' ] = "Mack";
$_SESSION[ 'age' ] = 25;

Chúng ta cũng có thể loại bỏ biến phiên bằng cách sử dụng hàm unset như hình bên dưới

// Remove session variable
if( isset( $_SESSION[ 'age' ] ) ) {

unset( $_SESSION[ 'age' ] );
}

Truy cập dữ liệu phiên

Chúng ta có thể truy cập các biến phiên bằng cách sử dụng mảng siêu toàn cục $_SESSION như hình bên dưới

// Start the session if not exist
session_start();

// Read session data
$name = null;
$age = null;

if( isset( $_SESSION[ 'name' ] ) ) {

$name = $_SESSION[ 'name' ];
}

if( isset( $_SESSION[ 'age' ] ) ) {

$age = $_SESSION[ 'age' ];
}

....
....
// Use $name and $age session variables

Dưới đây được đề cập là một ví dụ khác về biến phiên để theo dõi biến hiện có và cập nhật nó bằng cách sử dụng giá trị hiện có

if( !isset( $_SESSION[ 'count' ] ) ) {

$_SESSION[ 'count' ] = 0;
}
else {

$_SESSION[ 'count' ]++;
}

Hủy phiên

Chúng tôi cũng có thể hủy dữ liệu phiên hoàn thành loại bỏ tất cả các biến phiên. Chúng tôi không thể truy cập các biến phiên sau khi gọi hàm session_destroy. Hàm session_unset cũng có thể được sử dụng trong trường hợp chúng ta muốn giữ nguyên một phiên bằng cách trước tiên lưu trữ các biến phiên quan trọng và gọi nó để xóa tất cả các biến khác. Chúng tôi có thể lưu trữ lại các biến phiên quan trọng trở lại cùng một phiên

// Start the session if not exist
session_start();

// Read session data
$name = null;
$age = null;

if( isset( $_SESSION[ 'name' ] ) ) {

$name = $_SESSION[ 'name' ];
}

if( isset( $_SESSION[ 'age' ] ) ) {

$age = $_SESSION[ 'age' ];
}

....
....
// Use $name and $age session variables
....
....

// Remove all the session variables
session_unset();

// Destroy the session
session_destroy();

Theo mặc định, dữ liệu phiên PHP kéo dài trong 24 phút khi không có bất kỳ hoạt động nào của người dùng. Ngoài ra, hãy đảm bảo rằng hàm session_destroy được gọi sau session_start. Chúng tôi cũng có thể hết thời gian chờ phiên PHP như đã thảo luận trong Đặt thời gian chờ cho phiên trong PHP

Bản tóm tắt

Hướng dẫn này cung cấp cách sử dụng các phiên trong PHP bằng cách cung cấp các ví dụ thích hợp để bắt đầu phiên. Nó cũng cung cấp các ví dụ để tạo, cập nhật hoặc xóa một biến khỏi phiên. Cuối cùng, chúng tôi đã hủy phiên để xóa dữ liệu tạm thời trên máy chủ

Làm cách nào để xử lý biến phiên trong PHP?

Một phiên được bắt đầu với hàm session_start(). Các biến phiên được đặt với biến toàn cục PHP. $_SESSION .

Cách tốt nhất để xử lý phiên trong PHP là gì?

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.

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

Bạn có thể hủy đặt biến phiên bằng cách sử dụng. .
session_unset - Giải phóng tất cả các biến phiên (Tương đương với việc sử dụng. $_SESSION = mảng();
unset($_SESSION['Sản phẩm']); . .
session_destroy - Hủy tất cả dữ liệu đã đăng ký cho một phiên