我有一个用户登录的主页,这个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语句下
答案 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)
试试此代码。
$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;