gpt4 book ai didi

php - 一小时后 session 取消设置使用 php 不起作用?

转载 作者:搜寻专家 更新时间:2023-10-31 21:08:28 24 4
gpt4 key购买 nike

以下是我的 php 代码,如果用户不活动,一小时后应该取消设置所有 session 。但在几分钟不活动后,它是 unset 所有 session 变量。应该是一小时不活动。

function timeout(){ 
if(session_id() == '') {
session_start();
}
global $loginUrl;
$host = $_SERVER['HTTP_HOST'];
$sessinTime = $_SESSION['timeout'] = time();
$session = isset($_SESSION['timeout']) ? $_SESSION['timeout'] : $sessinTime;
if($session + (60 * 60 * 2) < time()) {
unset($_SESSION['front_username']);
unset($_SESSION['front_password']);
unset($_SESSION['user_id']);
unset($_SESSION['timeout']);
echo "<div class='error'>Session is expired. <a href='$loginUrl'>Login again.</a></div>";
//echo "<div class='error'>Session is expired. <a href='https://gc1-4.com/acc1/login.php'>Login again.</a></div>";
exit();
}
$_SESSION['timeout'] = time();
}

当用户登录时,我在 session 变量中注册了 time()。这是代码:

$_SESSION['front_username'] = $username;        
$_SESSION['front_password'] = $password2;
$_SESSION['user_id'] = $userid;
$_SESSION['timeout'] = time();

你能告诉我我的代码对还是错?我该如何解决?谢谢。

最佳答案

你刚刚犯了一个小的赋值错误:

$sessinTime = $_SESSION['timeout'] = time();

这一行将重置初始时间,应该变成:

$sessinTime = $_SESSION['timeout'];

关于php - 一小时后 session 取消设置使用 php 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27704461/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com