为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 检查会话是否仍然有效

PHP 检查会话是否仍然有效

PHP
忽然笑 2023-04-21 10:55:11
我有一个 PHP 应用程序,它在用户浏览应用程序时使用会话来保留用户信息/权限等。我现在被要求配置系统以防止同一用户多次登录。我不能使用 cookie。作为身份验证过程的一部分,我跟踪用户何时登录等,因此想到捕获用户 PHP 会话值(使用session_id()),将其存储在数据库中,然后在用户选择注销(或自动登录)时取消该字段通过不活动退出)。通过更新的登录过程,这应该是可能的。我喜欢这种方法,它非常干净,但缺点是如果用户在没有完全注销的情况下关闭浏览器,则不会使 sessionID 无效。于是我开始思考:如果sessionid 中有值,为什么不检查 PHP 是否认为它仍然有效?现在从记忆中我似乎记得一个 PHP 函数,它会告诉我特定会话是否仍然有效。我以为是这样,session_id()但我不认为是这样,因为它获取或设置了当前会话。根据我的记忆,该函数将检查服务器的 session.save_path(/var/lib/php/sessions 使用 Ubuntu 和默认的 PHP.ini)以查看文件是否仍然有效*并相应地报告......但我似乎找不到那个功能。有人可以在这里帮助我吗?*我很欣赏 PHP 的垃圾收集还有很多不足之处
查看完整描述

1 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

是的,有这样的功能来检查会话状态是活动的、禁用的还是不存在的

session_status()

此函数返回值作为

  • PHP_SESSION_DISABLED 如果会话被禁用。

  • PHP_SESSION_NONE 如果会话已启用,但不存在。

  • PHP_SESSION_ACTIVE 如果启用了会话,并且存在一个。

查看完整回答
反对 回复 2023-04-21
  • 1 回答
  • 0 关注
  • 62 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信