1天后会话超时

时间:2017-01-07 12:44:58

标签: php session

我有一个用户登录的主页,这个PHP代码:

 <?php
    session_start();
    $username= $_SESSION['username'];

    if($_SESSION['username'] == "")
    {
        header("Location: http://new_system/");
    }

    require "connection.php";

    $result= mysqli_query($conn,"SELECT * FROM users WHERE username = '$username'");
    $row = mysqli_fetch_row($result);
    $firstname = $row[0];
    $lastname= $row[1];
    $email = $row[2];
    $birthday = $row[4];
    $gender = $row[5];
    $path = $row[8];


    ?>

我尝试添加此

$_SESSION["timeout"] = time()+ (0*1*0*0);

所以它在一天后退出但它没有工作,有人可以告诉我原因。我把它放在会话的if语句下

3 个答案:

答案 0 :(得分:1)

$_SESSION["timeout"] = time()+ (0*1*0*0);

不正确 将任意数乘以零(0)为零(0)

改变这样的事情 10分钟 10 * 60

24小时(一天) 24 * 60 * 60

$_SESSION["timeout"] = time()+ (24 * 60 * 60);

您可以回应它以查看差异

答案 1 :(得分:0)

您也设置了Cookie超时。对于cookie,默认是窗口会话,当您关闭浏览器时,cookie会超时。 session_id保存在cookie中,当cookie过期时,会话也会过期。

答案 2 :(得分:0)

试试此代码。

&#13;
&#13;
 $inactive = 60*60*24;
if( !isset($_SESSION['timeout']) )
$_SESSION['timeout'] = time() + $inactive; 

$session_life = time() - $_SESSION['timeout'];

if($session_life > $inactive)
{  session_destroy(); header("Location:index.php");     }

$_SESSION['timeout']=time();
&#13;
&#13;
&#13;