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 关注
- 432 浏览
添加回答
举报
0/150
提交
取消
