我正在尝试控制会话是否已启动,并根据它进行重定向,并检查会话时间,如果已过期重定向,如果没有 - 继续。
我有两页:
在一个页面中,用户最初进入会话的位置尚未设置,我有以下代码:
session_start();
$_SESSION['timeout'] = time();
header('Location: index.php');
在第二页上我有这个:
$inactive = 600;
if(isset($_SESSION['timeout']) ) {
$session_life = time() - $_SESSION['timeout'];
if($session_life > $inactive)
{ session_destroy(); header("Location: intro.php"); }
}
else { header("Location: intro.php"); }
它仍然带我到第一页(intro.php)
我的代码在这里出了什么问题?
顺便说一句......而不是在$ session_life>时重定向$ inactive我想更新会话,以便会话永不过期。有什么提示吗?
答案 0 :(得分:3)
您必须在计划使用会话的每个页面中致电session_start()
。
所以只需在第二页添加一个session_start()
(记得在回显任何输出之前这样做),你应该没问题。