Làm cách nào để kiểm tra xem phiên đã hết hạn trong PHP chưa?

Khi người dùng đăng nhập, tôi đăng ký tên người dùng làm biến phiên, vì vậy mỗi trang tôi đều kiểm tra biến này. nếu phiên hết thời gian chờ (26 phút). Tôi sử dụng mã để chuyển hướng đến thư đăng nhập. php lại

Mã này sẽ hoạt động. Nhưng vấn đề là tôi đăng nhập và rời khỏi máy tính của mình hơn 1 ngày

Khi tôi nhấp vào liên kết một lần nữa, nó sẽ chuyển hướng đến loginmail. php nhưng phiên vẫn còn hiệu lực nên tôi vẫn có thể lướt phần thành viên. Tôi không biết tại sao phiên không hết thời gian?

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

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

Cải thiện bài viết

Lưu bài viết

Thích bài viết

  • Độ khó. Trung bình
  • Cập nhật lần cuối. 19 tháng 5 năm 2021

  • Đọc
  • Bàn luận
  • khóa học
  • Luyện tập
  • Băng hình
  • Cải thiện bài viết

    Lưu bài viết

    Trong PHP, các phiên được duy trì để kiểm tra xem người dùng có hoạt động không. Khi người dùng không hoạt động và người dùng quên đăng xuất khỏi trang web, có khả năng những người dùng khác đang xem trang gây ra vi phạm an ninh. Theo mặc định, một phiên trong PHP bị hủy khi đóng trình duyệt. Thời gian chờ của phiên có thể được tùy chỉnh để làm cho trang của người dùng không hoạt động sau một thời gian cố định.
    Bắt đầu phiên. Hàm PHP, session_start() được sử dụng để bắt đầu một phiên trong trang web.
    Cú pháp.
     

    session_start();

    Biến phiên. Sau khi bắt đầu phiên, các biến phiên có thể được tạo để sử dụng trong tương lai. Các biến phiên có thể được tạo và các giá trị có thể được lưu trữ trong các biến đó như sau.
    Cú pháp.
     

    • Việc tạo biến phiên với tên biến 'var1' và gán giá trị '5' cho nó có thể được thực hiện như.
       
     $_SESSION['var1']=5;
    • Việc gán một biến cho một biến phiên có thể được thực hiện như.
       
    $username="John";
    $_SESSION['username']=$username;

    Hủy các biến phiên và phiên. Để loại bỏ tất cả các biến phiên được khởi tạo trước khi hủy phiên, nên sử dụng lệnh sau.
    Cú pháp.
     

    • Để hủy phiên nhất định, nên sử dụng lệnh sau.
       
    session_unset();
    • Để hủy phiên hoàn chỉnh, nên sử dụng lệnh sau.
       
    session_destroy();

    Thay đổi thời gian chờ của phiên. Xem xét có một trang đăng nhập với nút 'Đăng nhập' ở dạng HTML. Khi người dùng nhấp vào nút 'Đăng nhập', phiên bắt đầu và các biến phiên được đặt. Một biến phiên để lưu trữ thời gian đăng nhập được khởi tạo. Sau đó nó được chuyển hướng đến trang chủ của người dùng.
     

    • Trang đăng nhập.
       

    php




    session_destroy();
    9

     

     $_SESSION['var1']=5;
    0

     $_SESSION['var1']=5;
    1

     $_SESSION['var1']=5;
    2
     $_SESSION['var1']=5;
    3
     $_SESSION['var1']=5;
    0
     $_SESSION['var1']=5;
    1
     $_SESSION['var1']=5;
    2
     $_SESSION['var1']=5;
    3

     

     $_SESSION['var1']=5;
    4
     $_SESSION['var1']=5;
    5
     $_SESSION['var1']=5;
    0
     $_SESSION['var1']=5;
    1
     $_SESSION['var1']=5;
    8
     $_SESSION['var1']=5;
    9

     

    $username="John";
    $_SESSION['username']=$username;
    0
    $username="John";
    $_SESSION['username']=$username;
    1

    $username="John";
    $_SESSION['username']=$username;
    0______33
     $_SESSION['var1']=5;
    1
    $username="John";
    $_SESSION['username']=$username;
    5
    $username="John";
    $_SESSION['username']=$username;
    6
     $_SESSION['var1']=5;
    2
    $username="John";
    $_SESSION['username']=$username;
    8

     

    $username="John";
    $_SESSION['username']=$username;
    0
    session_unset();
    0

    $username="John";
    $_SESSION['username']=$username;
    0______33
     $_SESSION['var1']=5;
    1____44
    session_unset();
    5

    _______30____47____48

    session_unset();
    9

    session_destroy();
    0

    session_destroy();
    1

    •  

    Trên trang chủ, để duy trì phiên làm việc, hàm session_start() được gọi. Điều này cho phép chúng tôi truy xuất các biến phiên từ trang này. Sử dụng hàm time(), thời gian hiện tại có thể được tính. Sự khác biệt giữa thời gian hiện tại và biến phiên được tạo tại thời điểm đăng nhập không được vượt quá thời gian chờ mong muốn. Khi vượt quá thời lượng, phiên sẽ bị hủy và trang được chuyển hướng đến trang Đăng nhập.
    Thích nếu Thời gian chờ phiên = 10 phút. Phiên sẽ tự động bị hủy sau 10 phút = 10*60 giây = 600 giây
     

    • Trang chủ.
       

    php




    session_destroy();
    9

     

     $_SESSION['var1']=5;
    1

     

    session_destroy();
    4

     $_SESSION['var1']=5;
    4
     $_SESSION['var1']=5;
    5
    $username="John";
    $_SESSION['username']=$username;
    3
     $_SESSION['var1']=5;
    1
    $username="John";
    $_SESSION['username']=$username;
    5
    session_destroy();
    90

    session_destroy();
    91

    $username="John";
    $_SESSION['username']=$username;
    0______24
    session_destroy();
    94
    $username="John";
    $_SESSION['username']=$username;
    3
     $_SESSION['var1']=5;
    1
    session_unset();
    4
    session_destroy();
    98

    $username="John";
    $_SESSION['username']=$username;
    0
    session_destroy();
    91

     $_SESSION['var1']=5;
    01
     $_SESSION['var1']=5;
    02

     $_SESSION['var1']=5;
    01
     $_SESSION['var1']=5;
    04

     $_SESSION['var1']=5;
    01
    session_unset();
    7____607
    session_unset();
    9

    $username="John";
    $_SESSION['username']=$username;
    0
    session_destroy();
    0

    session_destroy();
    0

     $_SESSION['var1']=5;
    12

    session_destroy();
    91

    _______30____47____607____49

    session_destroy();
    0

    session_destroy();
    1

    •  

     


    Ghi chú cá nhân của tôi arrow_drop_up

    Tiết kiệm

    Vui lòng Đăng nhập để nhận xé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 để kiểm tra 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 để kiểm tra xem phiên có bị hủy trong PHP không?

    Phiên PHP có thể bị hủy bởi hàm session_destroy(). Hàm này không cần bất kỳ đối số nào và một lệnh gọi có thể hủy tất cả các biến phiên. Nếu bạn muốn hủy một biến phiên thì bạn có thể sử dụng hàm unset() để hủy đặt một biến phiên

    Phiên PHP có hết hạn không?

    Theo mặc định, một phiên trong PHP sẽ bị hủy khi đóng trình duyệt . Thời gian chờ của phiên có thể được tùy chỉnh để làm cho trang của người dùng không hoạt động sau một thời gian cố định. bắt đầu phiên. Hàm PHP, session_start() được sử dụng để bắt đầu một phiên trong trang web.