PHP会话超时当用户登录时,我正在创建一个会话:$_SESSION['id'] = $id;如何在X分钟的会话上指定超时,然后在达到X分钟后执行功能或页面重定向?编辑:我忘了提到由于不活动我需要会话超时。
3 回答
蝴蝶刀刀
TA贡献1801条经验 获得超8个赞
首先,存储用户上次发出请求的时间
<?php
$_SESSION['timeout'] = time();
?>
在后续请求中,检查他们提前多久提出请求(本例中为10分钟)
<?php
if ($_SESSION['timeout'] + 10 * 60 < time()) {
// session timed out
} else {
// session ok
}
?>
忽然笑
TA贡献1806条经验 获得超5个赞
当会话到期时,数据不再存在,所以类似于
if (!isset($_SESSION['id'])) { header("Location: destination.php"); exit;}
只要会话不再有效,它就会重定向。
您可以使用session.cookie_lifetime设置会话cookie的有效时间
ini_set("session.cookie_lifetime","3600"); //an hour
编辑:如果由于安全问题(而不是方便)计时会话,请使用接受的答案,如下面的评论所示,这是由客户控制的,因此不安全。我从未将此视为安全措施。
蛊毒传说
TA贡献1895条经验 获得超3个赞
首先检查会话是否尚未创建,如果没有创建会话。在这里我只设置1分钟。
<?php if(!isset($_SESSION["timeout"])){ $_SESSION['timeout'] = time(); }; $st = $_SESSION['timeout'] + 60; //session time is 1 minute?><?php if(time() < $st){ echo 'Session will last 1 minute'; }?>
- 3 回答
- 0 关注
- 378 浏览
添加回答
举报
0/150
提交
取消