如何在PHP会话中获取mysql数据库更新以触发重新身份验证
启动会话时,通过查询对数据库进行身份验证。如果授予此身份验证,则会用数据填充一个或多个会话变量。这允许用户在无需重新验证的情况下通过多个页面进行传输,这非常好。但是,如果正在使用的会话变量在数据库中发生更改,即用户名更改、访问权限更改,则更改不会波及到会话(显然) 如何使数据库更改触发PHP会话变量,或使其波动 例如,登录到一个网站,在该网站上,您拥有访问权限x,允许您访问第1、2、3页。由于某种原因,您的权限现在被剥夺,您现在拥有访问权限y,它只允许您访问第1页。如果用户已经在站点内通过身份验证,这些更改将不会影响用户当前会话,并且仍然能够访问第2页和第3页。在许多情况下,这可能是一个问题 目前,我的解决方案是在每个页面重新验证用户,并相应地更新会话变量。从我对会话(应该)如何工作的有限理解来看,这显然是完成此任务的错误方式 本质上,我希望数据库更新能够触发对当前登录用户的重新身份验证。i、 e.如果用户john12的数据库行被更改,那么他的会话应该需要重新身份验证 目前,如果不在每次加载页面时查询数据库,我想不出任何方法来实现这一点如何在PHP会话中获取mysql数据库更新以触发重新身份验证,php,mysql,sql,session,authentication,Php,Mysql,Sql,Session,Authentication,启动会话时,通过查询对数据库进行身份验证。如果授予此身份验证,则会用数据填充一个或多个会话变量。这允许用户在无需重新验证的情况下通过多个页面进行传输,这非常好。但是,如果正在使用的会话变量在数据库中发生更改,即用户名更改、访问权限更改,则更改不会波及到会话(显然) 如何使数据库更改触发PHP会话变量,或使其波动 例如,登录到一个网站,在该网站上,您拥有访问权限x,允许您访问第1、2、3页。由于某种原因,您的权限现在被剥夺,您现在拥有访问权限y,它只允许您访问第1页。如果用户已经在站点内通过身份验
任何提示或解决方案都将不胜感激。我通常是通过4个字段进行身份验证的,这是我的数据库
- 用户名
- 密码(通常是散列的)
- 代币
- 记录的IP
我不明白您为什么不想查询数据库中的用户权限,SQL数据库速度非常快,即使有很多记录,尤其是在按主键搜索时。在会话中记住用户权限不是一个好做法。为什么不在每个页面加载时查询数据库?您是说在每个页面上查询数据库是解决此问题的最佳方法吗?您希望立即更改数据库,但同时希望缓存它。这些是完全相反的。