PHP - make session expire after X minutes

前端 未结 2 1351
隐瞒了意图╮
隐瞒了意图╮ 2020-12-15 12:42

i am using the following technique...

From the login.php the form posts to the page check.php where i do this



        
相关标签:
2条回答
  • 2020-12-15 12:54

    I would look at session_set_cookie_params and ini_set("session.gc_maxlifetime", "18000");

    0 讨论(0)
  • 2020-12-15 13:04

    Store a timestamp in the session:

    <?php    
    $uzer = $_POST['user_name'];
    $pass = $_POST['user_pass'];
    
    require ('DB_connection.php');
    
    // Hey, always escape input if necessary!
    $result = mysql_query(sprintf("SELECT * FROM accounts WHERE user_Name='%s' AND user_Pass='%s'", mysql_real_escape_string($uzer), mysql_real_escape_string($pass));
    
    if( mysql_num_rows( $result ) > 0)
    {
        $array = mysql_fetch_assoc($result);    
    
        session_start();
        $_SESSION['user_id'] = $uzer;
        $_SESSION['login_time'] = time();
        header("Location:loggedin.php");            
    }
    else
    {
        header("Location:login.php");
    }
    ?>
    

    Check if the timestamp is within the allowed time window (600 seconds is 10 minutes):

    <?php
    session_start();
    if( !isset( $_SESSION['user_id'] ) || time() - $_SESSION['login_time'] > 600)
    {
        header("Location:login.php");
    }
    else
    {
        // uncomment the next line to refresh the session, so it will expire after ten minutes of inactivity, and not 10 minutes after login
        //$_SESSION['login_time'] = time();
        echo ( "this session is ". $_SESSION['user_id'] );
        //show rest of the page and all
    }
    ?>
    
    0 讨论(0)
提交回复
热议问题