Khi người dùng không hoạt động và quên đăng xuất khỏi trang web, điều đó có thể gây ra sự cố bảo mật. Vì vậy, khi trình duyệt bị đóng, theo mặc định, phiên PHP sẽ bị hủy Show
Tại đây, bạn sẽ tìm hiểu cách bắt đầu một phiên và cách sửa đổi phiên đó một cách chính xác bằng cách sử dụng PHP Bây giờ, hãy xem cách bắt đầu một phiên sử dụng các hàm PHP Nếu bạn muốn bắt đầu một phiên làm việc với PHP, bạn có thể sử dụng hàm session_start(). Cú pháp sử dụng như sau Sau khi bắt đầu một phiên, bạn có thể tạo các biến phiên để sử dụng chúng trong tương lai Bạn có thể tạo chúng và lưu trữ chúng trong các biến bằng cách hành động như hình bên dưới
Sau khi tạo phiên và các biến của nó, bạn có thể xóa chúng Nếu bạn muốn xóa một phiên cụ thể, bạn có thể chạy lệnh này Để hủy phiên hoàn toàn, bạn có thể hành động như thế này Hãy tưởng tượng, tồn tại một trang đăng nhập và nút "Đăng nhập". Sau khi nhấp vào nút đó, phiên bắt đầu và các biến được đặt. Biến phiên để lưu trữ thời gian đăng nhập được sắp xếp. Sau đó, nó được chuyển hướng đến trang chủ của người dùng Hãy xem một ví dụ về các hành động trên trang đăng nhập Để giữ phiên trên trang chủ, bạn nên gọi hàm session_start(). Nó cho phép lấy các biến phiên từ trang. Để tính thời gian hiện tại, bạn có thể sử dụng hàm time(). Cần lưu ý rằng sự khác biệt giữa biến phiên được tạo tại thời điểm đăng nhập và thời gian hiện tại không được vượt quá thời gian chờ mong muốn. Khi thời lượng vượt quá, phiên sẽ bị hủy. Do đó, trang sẽ được chuyển hướng đến trang đăng nhập Để hiểu rõ hơn về những gì đang xảy ra trên trang chủ, hãy xem ví dụ bên dưới Hàm PHP này được sử dụng để bắt đầu một phiên mới hoặc tiếp tục phiên hiện có. Khi session_start được chạy, PHP gọi trình xử lý lưu phiên mở và đọc. Nó có thể là một trình xử lý lưu sẵn có, được cung cấp theo mặc định hoặc bởi các phần mở rộng của PHP Hàm session_start() được sử dụng để tạo phiên làm việc mới cho người dùng. Tên phiên mặc định là PHPSESSID và nó được sử dụng để kiểm tra phiên có tồn tại hay không. Nếu không tìm thấy cookie hoặc thông tin phiên thì một phiên mới sẽ được tạo cho người dùng, nếu không, phiên hiện tại sẽ được sử dụng cho người dùng Đặt thời gian chờ phiênGiới hạn thời gian chờ của phiên có thể được đặt bằng cách đặt giá trị của hai lệnh trong tệp php. ini hoặc sử dụng hàm ini_set() trong tập lệnh PHP. Các chỉ thị được đưa ra dưới đây
Nó được sử dụng để đặt giới hạn thời gian tính bằng giây để lưu trữ thông tin phiên trong máy chủ trong một thời gian dài Nó được sử dụng để đặt giới hạn thời gian hết hạn cho cookie PHPSESSID Đặt thời gian chờ phiên trong PHPCác cách đặt giá trị thời gian chờ của phiên trong PHP để xử lý phiên của người dùng đã được trình bày trong phần này của hướng dẫn bằng cách sử dụng nhiều ví dụ Ví dụ 1. Đặt giá trị thời gian chờ của phiên bằng cách sử dụng lệnh PHPTạo một tệp PHP với tập lệnh sau để biết cách thiết lập thời gian chờ của phiên bằng cách sử dụng các lệnh PHP và xử lý các phiên dựa trên các giá trị của lệnh. Hàm ini_set() đã được sử dụng trong tập lệnh để đặt giá trị của phiên. gc_maxlifetime và phiên. chỉ thị cookie_lifetime. Thời lượng của phiên đã được đặt thành 2 giây cho mục đích thử nghiệm. Biến siêu toàn cục mảng $_COOKIE đã được sử dụng ở đây để xử lý phiên. Phiên mới sẽ được tạo cho người dùng khi tập lệnh sẽ thực thi trong trình duyệt và sau hai giây, phiên sẽ hết hạn
đầu ra Đầu ra sau sẽ xuất hiện sau khi thực hiện đoạn mã trên lần đầu tiên. Đầu ra hiển thị tên người dùng phiên mặc định, PHPSESSID Đầu ra sau sẽ xuất hiện nếu trang được làm mới sau 2 giây Ví dụ-2. Đặt giá trị thời gian chờ của phiên sử dụng mảng $_SESSIONTạo một tệp PHP với tập lệnh sau để đặt giá trị thời gian chờ của phiên bằng cách sử dụng biến siêu toàn cục PHP, $_SESSION. Thời lượng của phiên đã được đặt thành 5 giây cho mục đích thử nghiệm. Tiếp theo, thời gian yêu cầu của người dùng cho trang đã được lưu trữ trong một biến có tên $time. Khi khoảng thời gian giữa biến $time và hoạt động cuối cùng của người dùng dài hơn 5 giây, thì phiên hiện tại của người dùng sẽ bị hủy và một phiên mới sẽ được tạo. Các hàm session_unset() và session_destroy() đã được sử dụng trong tập lệnh để hủy phiên
đầu ra Đầu ra sau sẽ xuất hiện sau khi thực hiện đoạn mã trên lần đầu tiên Đầu ra sau sẽ xuất hiện nếu trang được làm mới sau 5 giây Ví dụ-3. Đặt giá trị thời gian chờ của phiên sử dụng mảng $_SESSION và hàm time()Tạo tệp PHP với tập lệnh sau để đặt giá trị thời gian chờ của phiên bằng cách sử dụng biến siêu toàn cầu PHP, $_SESSION và hàm PHP tích hợp, time(). Hàm time() trả về giá trị dấu thời gian hiện tại của hệ thống. Thời lượng của phiên đã được đặt thành 600 giây (10 phút) trong tập lệnh $_SESSION[‘start’] đã được sử dụng để lưu trữ thời gian bắt đầu của phiên. Khi khoảng thời gian giữa thời gian hiện tại và thời gian bắt đầu phiên kéo dài hơn 10 phút, thì phiên hiện tại của người dùng sẽ bị hủy. Các hàm session_unset() và session_destroy() đã được sử dụng trong tập lệnh như ví dụ trước để hủy phiên
đầu ra Đầu ra sau sẽ xuất hiện sau khi thực hiện đoạn mã trên lần đầu tiên. Thông báo hết hạn sẽ được hiển thị nếu trang được làm mới sau 10 phút Phần kết luậnBa cách khác nhau để đặt giá trị thời gian chờ của phiên để xử lý phiên của người dùng trong PHP đã được trình bày trong hướng dẫn này. Người dùng PHP sẽ có khái niệm cơ bản về triển khai phiên của người dùng bằng cách sử dụng các biến $_COOKIE và $_SESSION và có thể áp dụng nó trong tập lệnh của họ sau khi đọc hướng dẫn này Làm cách nào để kiểm tra trạng thái phiên trong PHP?Luôn sử dụng session_status() , để kiểm tra xem một phiên đã bắt đầu và đang hoạt động chưa. if(session_id() === "") session_start();
Làm cách nào để hiển thị thời gian phiên trong PHP?Hàm time() trả về giá trị dấu thời gian hiện tại của hệ thống . Thời lượng của phiên đã được đặt thành 600 giây (10 phút) trong tập lệnh. $_SESSION['start'] đã được sử dụng để lưu trữ thời gian bắt đầu của phiên.
Làm thế nào kiểm tra giá trị phiên là null hay không trong PHP?Nếu bạn muốn kiểm tra xem có phiên nào hay không, bạn có thể muốn sử dụng hàm session_id() . session_id() trả về id phiên cho phiên hiện tại hoặc chuỗi trống ("") nếu không có phiên hiện tại (không tồn tại id phiên hiện tại).
Phiên của bạn đã hết hạn là gì?Sau khi người dùng không hoạt động trong một khoảng thời gian nhất định, một số nền tảng Tài nguyên điện tử nhất định sẽ thông báo cho họ rằng phiên của họ đã hết hạn và tự động đăng xuất họ . |