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
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
- Tạo biến phiên 'var1' và gán giá trị 3 cho nó
- Gán một biến cho phiên
$username="Michael"; $_SESSION['username']=$username;
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ên
Giớ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
- phiên họp. gc_maxlifetime
- phiên họp. cookie_lifetime
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 PHP
Cá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 PHP
Tạ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 $_SESSION
Tạ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ận
Ba 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