在循环中卡住 x 天后强制更改密码


Forced password change after x days stuck in a loop

我正在为 Web 应用程序在 90 天后实施强制密码更改 - 在每个页面上调用的应用程序头文件的顶部,我检查密码的年龄,如果超过 90 天,则强制用户进入密码更改页面。这一切都很好用。

问题是密码更改页面还调用执行检查的标题页面,因此它的外观和感觉与站点的其余部分相同,但是,当然,它会坚持一个永无止境的检查和重定向循环 - 防止这种情况的最佳方法是什么?我不想让密码更改页面没有格式,也不想作为弹出窗口,理想情况下,我不想在没有密码检查的情况下使用不同的模板标题,因为我会在进行更改时忘记更新第二个。

我还能怎么做?我想确保用户在通过 90 天标记后除了更改密码外,无法执行任何其他操作。

谢谢杰森

只需修改检查,以便在加载密码更改页面时不会重定向。

一个干净的方法是(假设你不做 OOP 并且不使用其中一个 PHP 框架)在包含文件和对defined('ALLOW_EXPIRED_PASSWORD')执行重定向检查的函数之前define('ALLOW_EXPIRED_PASSWORD', 1);,并且仅在该检查返回 false 时才重定向。

在您的情况下,我会做的事情(听起来像是普通的 ole php)在您的情况下听起来更容易,这是一个简单的 if 语句,它检查用户正在访问的文件名。

这样,您就不必明确设置 ThiefMaster 提到的常量。