当前位置: 首页 > 面试题库 >

PHP会话超时

胡鸿远
2023-03-14
问题内容

我在用户登录时创建会话,如下所示:

$_SESSION['id'] = $id;

如何在X分钟的会话上指定超时,然后在达到X分钟后让它执行功能或页面重定向?

编辑:我忘了提及由于不活动,我需要会话超时。


问题答案:

首先,存储用户最后一次发出请求的时间

<?php
  $_SESSION['timeout'] = time();
?>

在后续请求中,检查他们多久之前提出了请求(在此示例中为10分钟)

<?php
  if ($_SESSION['timeout'] + 10 * 60 < time()) {
     // session timed out
  } else {
     // session ok
  }
?>


 类似资料:
  • 问题内容: 默认情况下,PHP会话是否超时-即,如果我没有任何编码,最终在一段时间不活动后最终将“注销”用户吗? 问题答案: 这取决于服务器配置或相关指令的session.gc_maxlifetime在。 通常情况下,默认值为24分钟(1440秒),但是您的虚拟主机可能已将默认值更改为其他值。

  • 在 HTTP 协议中,当客户端不再处于活动状态时没有显示的终止信号。这意味着当客户端不再处于活跃状态时可以使用的唯一机制是超时时间。 Servlet 容器定义了默认的会话超时时间,且可以通过 HttpSession 接口的 getMaxInactiveInterval 方法获取。开发人员可以使用HttpSession 接口的 setMaxInactiveInterval 方法改变超时时间。这些方法

  • 问题内容: 我想在php中延长会话超时 我知道可以通过修改php.ini文件来实现。但我无权访问。 那么有可能只用php代码来做到吗? 问题答案: 如果需要严格的保证,会话超时是必须在代码中实现的概念。这是 唯一的办法 ,你可以绝对肯定的是,没有永远的会话将不活动的X分钟后存活。 如果稍微放松一下此要求是可以接受的,并且可以设置 下限 而不是严格的持续时间,那么您可以轻松地做到这一点,而无需编写自

  • 问题内容: 和之间的实际区别是什么? 假设我希望用户会话在闲置15分钟后无效(而不是在第一次打开后15分钟内无效)。其中哪一项对我有帮助? 我也知道我可以这样做,可以将用户的Cookie设置为在一定时间内过期。但是,cookie过期与服务器端的实际会话过期是不相同的。Cookie过期后,这还会删除会话吗? 我的另一个解决方案是 对每个请求都很简单 ,然后将会话与当前时间进行比较,然后基于该时间删除

  • 我有一个问题发生在我坐在空闲的时候,没有接触网络浏览器,vaadin在点击vaadin应用程序中的任何内容之后,就会抛出红色的通信问题错误消息。 我已经通过30分钟不接触浏览器进行了测试。之后,当我单击vaadin应用程序中的一个按钮时,它会抛出通信错误消息。 我有两个应用服务器,它们位于Rackspace的负载均衡器后面。我还启用了“粘性会话”... vaadin可能有自己的超时吗?

  • 是否有可能“拦截”会话超时? 我尝试了,但据我所知,当调用HttpSessionListener.session毁灭()'方法时,会话已经被摧毁。(所以我没有机会确定用户,拥有超时的会话) 另一个选项是PhaseListener,在restoreView阶段检查会话是否是“新的”。 但是,我需要在会话超时的“第二天”执行一些操作-不在以后的刷新中执行,也不在以后的登录中执行。 (背景:需要删除某些