Làm cách nào để tạo ID phiên trong PHP?

Khi bạn làm việc với một ứng dụng, bạn mở ứng dụng đó, thực hiện một số thay đổi rồi đóng ứng dụng đó. Điều này giống như một Phiên. Máy tính biết bạn là ai. Nó biết khi nào bạn bắt đầu ứng dụng và khi nào bạn kết thúc. Nhưng trên internet có một vấn đề. máy chủ web không biết bạn là ai hoặc bạn làm gì vì địa chỉ HTTP không duy trì trạng thái

Biến phiên giải quyết vấn đề này bằng cách lưu trữ thông tin người dùng sẽ được sử dụng trên nhiều trang [e. g. tên người dùng, màu sắc yêu thích, v.v.]. Theo mặc định, các biến phiên kéo dài cho đến khi người dùng đóng trình duyệt

Vì thế;

Mẹo. Nếu bạn cần lưu trữ vĩnh viễn, bạn có thể muốn lưu trữ dữ liệu trong cơ sở dữ liệu

Bắt đầu một phiên 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

Bây giờ, hãy tạo một trang mới có tên "demo_session1. php". Trong trang này, chúng tôi bắt đầu một phiên PHP mới và đặt một số biến phiên

Thí dụ

// Bắt đầu phiên làm việc
phiên_bắt đầu[];
?>


// Đặt biến phiên
$_SESSION["favcolor"] = "xanh lục";
$_SESSION["favanimal"] = "mèo";
echo "Các biến phiên được thiết lập. “;
?>


Chạy ví dụ »

Ghi chú. Hàm session_start[] phải là thứ đầu tiên trong tài liệu của bạn. Trước bất kỳ thẻ HTML nào

Nhận các giá trị biến phiên PHP

Tiếp theo, chúng tôi tạo một trang khác có tên "demo_session2. php". Từ trang này, chúng tôi sẽ truy cập thông tin phiên mà chúng tôi đã đặt trên trang đầu tiên ["demo_session1. php"]

Lưu ý rằng các biến phiên không được truyền riêng lẻ cho từng trang mới, thay vào đó, chúng được truy xuất từ ​​phiên mà chúng tôi mở ở đầu mỗi trang [_______11_______]

Cũng lưu ý rằng tất cả các giá trị biến phiên được lưu trữ trong biến $_SESSION toàn cầu

Thí dụ

phiên_bắt đầu[];
?>


// Các biến phiên lặp lại đã được đặt ở trang trước
echo "Màu yêu thích là ". $_SESSION["màu yêu thích"]. "
“;
echo "Con vật yêu thích là ". $_SESSION["favanimal"]. ". “;
?>


Chạy ví dụ »

Một cách khác để hiển thị tất cả các giá trị biến phiên cho phiên người dùng là chạy đoạn mã sau

Thí dụ

phiên_bắt đầu[];
?>


print_r[$_SESSION];
?>


Chạy ví dụ »

Làm thế nào nó hoạt động?

Hầu hết các phiên đặt khóa người dùng trên máy tính của người dùng trông giống như thế này. 765487cf34ert8dede5a562e4f3a7e12. Sau đó, khi một phiên được mở trên một trang khác, nó sẽ quét máy tính để tìm khóa người dùng. Nếu khớp thì truy cập phiên đó, nếu không thì bắt đầu phiên mới

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 session_start[]. 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 session_start[] 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 session_start[] ở đầ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 với chức năng setcookie[]

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 $_SESSION[]. 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 của chúng tôi 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 session_start[] và sau đó chuyển khóa tương ứng tới 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 session_start[] để 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]

Làm cách nào để tạo phiên trong PHP?

Bạn có thể bắt đầu một phiên trong PHP bằng cách sử dụng hàm session_start[] . Theo mặc định, chức năng này sẽ kiểm tra phiên hiện có trước tiên. Nếu một phiên đã tồn tại, nó sẽ không làm gì cả, nhưng nó sẽ tạo một phiên nếu không có phiên nào tồn tại trước đó.

ID phiên trong PHP là gì?

PHP cho phép chúng tôi theo dõi từng khách truy cập thông qua một ID phiên duy nhất có thể được sử dụng để tương quan dữ liệu giữa các kết nối. Id này là một chuỗi ngẫu nhiên được gửi tới người dùng khi một phiên được tạo và được lưu trữ trong trình duyệt của người dùng trong một cookie [theo mặc định được gọi là PHPSESSID].

Làm cách nào để chuyển ID phiên trong PHP?

Trước khi nhận id phiên, bạn cần bắt đầu phiên và điều đó được thực hiện bằng cách sử dụng. hàm session_start[]. Bây giờ bạn đã bắt đầu một phiên, bạn có thể lấy id phiên bằng cách sử dụng. session_id[] .

Ví dụ về ID phiên là gì?

ID phiên có thể được xác định bằng tùy chọn dòng lệnh hoặc tài nguyên. ID phiên có thể là một giá trị duy nhất; . Một bộ id phiên có thể được xác định; . “Smith". A set of session Ids can be defined; for example, Smith+n where n is 3 would make 3 session Ids available, “Smith1", “Smith2", and “Smith3".

Chủ Đề