gpt4 book ai didi

php - 是否在每次加载页面时重置 php 中的 session ?

转载 作者:行者123 更新时间:2023-12-04 00:38:14 24 4
gpt4 key购买 nike

我正在尝试使用以下脚本将 session 生命周期延长至 3 天。

 ini_set('session.gc_maxlifetime',3*24*60*60);
ini_set('session.gc_probability',1);
ini_set('session.gc_divisor',1);

$sessionCookieExpireTime = 3*24*60*60;
session_set_cookie_params($sessionCookieExpireTime);
session_start();

// page code

session 生命周期必须保持 3 天,并且在第 3 天结束时 session 必须过期。我的问题是,

1) session 是否在每次页面加载时重置?

2) 我是否在每次重新加载页面时将生命周期延长至 3 天?

如果是,我不想在每次页面加载时都延长 session 生命周期。它应该设置用户第一次访问的页面,并且应该在第 3 天结束时过期。它不应在每次页面重新加载时重置 session 生命周期。

session 必须在 session 过期的第 3 天结束时重置。到那时,不应执行任何重置。

请帮我解决这个问题。提前致谢。

最佳答案

创建一个名为“created”的 session 变量,其中包含创建变量时的时间戳。现在,在每次加载页面时,您都会检查是否已经过了 3 天。如果 3 天过去了,您将取消设置 session 变量并销毁 session 。

<?php

session_start();

$expiry = 60 * 60 * 24 * 3; // 3 days

if (!isset($_SESSION['created'])) {
// Session variable 'created' doesn't exist, let's create one for the session
$_SESSION['created'] = time();
} else if (time() - $_SESSION['created'] > $expiry) {
// More than 3days has passed since the timestamp in 'created' session variable. Destroy the session.
// Here you could also unset any other session variables you had. I am unsetting the 'created' variable.
unset($_SESSION['created']);
session_destroy();
}

?>

关于php - 是否在每次加载页面时重置 php 中的 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22376232/

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