Thời gian chờ của phiên php là bao lâu?

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

The manual probably doesn't stress this enough:

** This has nothing to do with lifetime of a session **

________số 8

This only changes HTTP cache expiration time (Expires: and Cache-Control: max-age headers), which advise browser for how long it can keep pages cached in user's cache without having to reload them from the server.

Nó cung cấp các phương thức để đặt thời gian chờ cho các phiên trong PHP. Chúng tôi có thể hết thời gian phiên PHP theo chương trình hoặc sử dụng phiên. cấu hình gc_maxlifetime trong tệp ini của PHP hoặc bằng cách gọi hàm ini_set

23 Tháng Tư, 2020

Chúng ta có thể sử dụng các phiên trong PHP để lưu trữ hoặc duy trì dữ liệu tạm thời của người dùng trong một khoảng thời gian xác định như đã thảo luận trong Sử dụng phiên trong PHP. PHP vẫn cần lưu trữ id phiên bằng Cookie trên trình duyệt hoặc phía máy khách như trong Hình 1

Thời gian chờ của phiên php là bao lâu?

Hình 1

Id phiên được lưu trữ trên trình duyệt trong Cookie PHPSESSID là cách duy nhất mà PHP có thể sử dụng để xác định phiên người dùng ở phía máy chủ. Điều này vẫn làm lộ Cookie PHPSESSID để kẻ tấn công đánh cắp nó và truy vấn máy chủ để xử lý các yêu cầu thay mặt cho người dùng thực. Điều này dẫn đến chiếm quyền điều khiển phiên trong đó id phiên bị đánh cắp có thể được sử dụng bởi những kẻ tấn công để truy cập dữ liệu từ phiên hoạt động. Để ngăn chặn các yêu cầu trái phép, chúng tôi cũng có thể sử dụng mã thông báo mật mã mạnh liên tục thay đổi theo mọi yêu cầu của khách hàng

Chúng tôi có thể thắt chặt bảo mật hơn nữa bằng cách hết thời gian phiên ngay khi quá trình sử dụng kết thúc. Điều này cũng xóa cookie phiên trên trình duyệt hoặc phía máy khách. Hướng dẫn này cung cấp các phương pháp để đặt thời gian chờ cho các phiên trong PHP. Chúng tôi có thể hết thời gian phiên PHP theo chương trình hoặc sử dụng phiên. cấu hình gc_maxlifetime trong tệp ini của PHP hoặc bằng cách gọi hàm ini_set

Cập nhật PHP ini

Chúng tôi có thể cập nhật phiên. gc_maxlifetime bằng cách cập nhật tệp ini PHP. Tôi đã cung cấp một vài ví dụ như hình dưới đây

# WampServer -> Example -> /bin/php/php7.2.14/php.ini

# XAMPP -> Example -> /php/php.ini

# Ubuntu -> Apache Example -> /etc/php/7.2/apache2/php.ini

Bây giờ tìm kiếm php của bạn. tập tin ini cho phiên. gc_maxlifetime và cập nhật nó như hình bên dưới

; After this number of seconds, stored data will be seen as 'garbage' and
; cleaned up by the garbage collection process.
; http://php.net/session.gc-maxlifetime
;session.gc_maxlifetime = 1440
session.gc_maxlifetime = 900

Mình đã cập nhật giá trị mặc định 24 phút thành 15 phút như hình trên. Bây giờ hãy khởi động lại máy chủ Apache hoặc Nginx dựa trên thiết lập máy chủ của bạn

Bạn cũng có thể hết thời gian chờ cookie bằng cách thay đổi giá trị mặc định là 0 thành cùng giá trị của thời gian chờ phiên. Đảm bảo rằng bạn gia hạn thời gian hết hạn Cookie cho mỗi yêu cầu trong trường hợp như vậy

; Lifetime in seconds of cookie or, if 0, until browser is restarted.
; http://php.net/session.cookie-lifetime
;session.cookie_lifetime = 0
session.cookie_lifetime = 900

Sử dụng Hàm ini_set

Chúng ta cũng có thể sử dụng chức năng ini_set thay vì thay đổi thời lượng thời gian chờ phiên mặc định như được hiển thị trong bước trước. Chúng ta có thể gọi hàm ini_set để thay đổi phiên. gc_maxlifetime như hình bên dưới

// Configure timeout to 15 minutes
$timeout = 900;

// Set the maxlifetime of session
ini_set( "session.gc_maxlifetime", $timeout );

// Also set the session cookie timeout
ini_set( "session.cookie_lifetime", $timeout );

// Now start the session
session_start();

// Update the timeout of session cookie
$sessionName = session_name();

if( isset( $_COOKIE[ $sessionName ] ) ) {

setcookie( $sessionName, $_COOKIE[ $sessionName ], time() + $timeout, '/' );
}

Thời gian chờ của phiên có lập trình

Chúng tôi có thể hết thời gian chờ phiên theo chương trình mà không cần sửa đổi cấu hình PHP bằng cách sử dụng ví dụ như bên dưới. Điều này hoạt động chính xác theo cách chúng ta muốn mà không cần dựa vào bộ sưu tập rác của PHP, thứ có thể không hết thời gian chờ phiên ở khoảng thời gian đã chỉ định như đã thảo luận trong các phần trước

// Start the session
session_start();

// Session timeout duration in seconds
// Specify value lesser than the PHPs default timeout of 24 minutes
$timeout = 900;

// Check existing timeout variable
if( isset( $_SESSION[ 'lastaccess' ] ) ) {

// Time difference since user sent last request
$duration = time() - intval( $_SESSION[ 'lastaccess' ] );

// Destroy if last request was sent before the current time minus last request
if( $duration > $timeout ) {

// Clear the session
session_unset();

// Destroy the session
session_destroy();

// Restart the session
session_start();
}
}

// Set the last request variable
$_SESSION['lastaccess'] = time();

Tóm lược

Hướng dẫn này cung cấp thông tin chi tiết về tầm quan trọng của thời gian chờ của phiên và cũng cung cấp các tùy chọn để chỉ định thời lượng hết thời gian của phiên

Thời gian chờ phiên mặc định trong PHP là gì?

Mặc định là 1440 (24 phút) .

Làm cách nào để kiểm tra thời gian chờ của phiên trong PHP?

Đặt $_SESSION['login_time'] = time(); . Và đoạn trích bên dưới trong mọi trang khác mà bạn muốn kiểm tra thời gian chờ của phiên. if(time() - $_SESSION['login_time'] >= 1800){ session_destroy(); // hủy phiên. tiêu đề ("Vị trí. đăng xuất.

Làm cách nào để xóa thời gian chờ của phiên trong PHP?

Cách sửa đổi thời gian chờ của phiên trong PHP .
Bắt đầu một phiên. Sử dụng session_start() Tạo biến phiên. Phá hủy các biến và phiên
Sửa đổi thời gian chờ của phiên
Hàm session_start() trong PHP

Làm cách nào để đặt thời gian chờ phiên không giới hạn trong PHP?

Chúng tôi có thể hết thời gian chờ phiên PHP theo chương trình hoặc sử dụng phiên. cấu hình gc_maxlifetime trong tệp ini của PHP hoặc bằng cách gọi hàm ini_set. Chúng ta có thể sử dụng các phiên trong PHP để lưu trữ hoặc duy trì dữ liệu tạm thời của người dùng trong một khoảng thời gian xác định như đã thảo luận trong Sử dụng phiên trong PHP