【发布时间】:2020-09-16 08:51:55
【问题描述】:
对于我网站中的所有页面,我在顶部都有此会话检查:
<?php
// Initialize the session
if(!isset($_SESSION))
{
session_start();
}
// Check if the user is logged in, if not then redirect him to login page
if(!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true){
header("location: login.php");
exit;
}
?>
我用它来检查用户是否登录。如果用户没有登录,他将被重定向到登录页面。
在 login.php 页面的最顶部,我有这个:
<?php
// server should keep session data for AT LEAST 8 hours
ini_set('session.gc_maxlifetime', 28800);
// each client should remember their session id for EXACTLY 8 hour
session_set_cookie_params(28800);
// Initialize the session
session_start();
// Check if the user is already logged in, if yes then redirect him to welcome page
if(isset($_SESSION["loggedin"]) && $_SESSION["loggedin"] === true){
header("location: index.php");
exit;
}
基本上这应该使会话持续 8 小时,是吗?
当用户成功登录后,我得到 SESSION:$_SESSION["loggedin"] = true;
我在这里做错了什么?当我将 SESSION 设置为持续 28800 秒 = 8 小时时,为什么我的用户在一段时间处于非活动状态后会不断退出/重定向到登录页面?
【问题讨论】:
-
评论不用于扩展讨论;这个对话是moved to chat。
标签: php